2016-10-11 50 views
1

我無法處理在TabLayout選項卡上設置自定義視圖。我想在每個非活動選項卡上設置下劃線(如活動選項卡上的指示符)和特定顏色。我以這種方式創建視圖:如何在tablayout的非活動選項卡上用特定顏色設置下劃線?我的自定義視圖佔用最大標籤寬度。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="wrap_content" 
android:layout_height="match_parent" 
android:background="@color/colorPrimary"> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="@style/tab_layout_item" 
    android:layout_centerInParent="true" 
    tools:text="All in"/> 

<View 
    android:layout_width="wrap_content" 
    android:layout_height="7dp" 
    android:background="@color/colorPrimaryDark" 
    android:layout_alignParentBottom="true"/> 

但WRAP_CONTENT參數沒有工作和看法佔據最大製表符的寬度。

這裏是我的TabLayout XML:

 <android.support.design.widget.TabLayout 
     android:layout_width="match_parent" 
     android:layout_height="48dp" 
     android:background="@color/background_primary" 
     app:tabIndicatorHeight="0dp" 
     app:tabMode="scrollable" 
     app:tabGravity="fill" 
     app:tabPaddingBottom="0dp" 
     app:tabPaddingTop="0dp" 
     app:tabPaddingStart="0dp" 
     app:tabPaddingEnd="0dp" 
     android:layout_gravity="bottom"/> 

如何創建TabLayout選項卡自定義視圖,其適合於內的文本(特別是當字符串中是短暫的)?

也許是實現這個結果的更好方法嗎?

回答

0

虛增您的標籤:

LayoutInflater inflater = getActivity().getLayoutInflater(); 
RelativeLayout tab1 = (RelativeLayout) inflater.inflate(R.layout.component_custom_tab,null); 
RelativeLayout tab2 ... 

添加ID到您的除法:

<View 
    android:id="@+id/divider" 
    android:layout_width="wrap_content" 
    android:layout_height="7dp" 
    android:background="@color/colorPrimaryDark" 
    android:layout_alignParentBottom="true"/> 

設置顏色爲每個標籤:

tab1.findViewById(R.id.divider).setBackgroundColor(getColor(R.color.color_1)); 
tab2 .... 

添加標籤在TabLayout:

mTabLayout.addTab(mTabLayout.newTab().setCustomView(tab1), index1); 
mTabLayout.addTab(mTabLayout.newTab().setCustomView(tab2), index2); 
... 
相關問題