2017-02-15 83 views
3

我在嘗試在TabLayout下面添加一行時遇到了問題,但它必須位於選擇器行後面。應該是這樣的:在TabLayout下面添加一行

Exemple

我已經嘗試添加自定義視圖,但每個標籤都有一定的餘量內,所以也沒有解決。

有什麼想法?

這就是我現在:

current_tablayout

這裏的如何我添加它的XML:

<android.support.design.widget.TabLayout 
    android:id="@+id/tabs" 
    android:layout_width="match_parent" 
    android:layout_height="60dp" 
    app:tabBackground="@color/white" 
    app:tabIndicatorColor="@color/colorAccent" 
    app:tabTextColor="@color/white"/> 

,這是我正在通過代碼做什麼:

private void configureTabLayout() { 
    TabLayout.Tab tabHome = mTabLayout.newTab().setIcon(R.drawable.ic_home_cinza); 
    TabLayout.Tab tabEmprestimos = mTabLayout.newTab().setIcon(R.drawable.ic_emprestimos_cinza); 
    TabLayout.Tab tabPersonal = mTabLayout.newTab().setIcon(R.drawable.ic_usuario_cinza); 

    View root = mTabLayout.getChildAt(0); 
    if (root instanceof LinearLayout) { 
     ((LinearLayout) root).setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); 
     GradientDrawable drawable = new GradientDrawable(); 
     drawable.setColor(getResources().getColor(R.color.silver)); 
     drawable.setSize(2, 1); 
     ((LinearLayout) root).setDividerPadding(10); 
     ((LinearLayout) root).setDividerDrawable(drawable); 
    } 

    mTabLayout.addTab(tabHome); 
    mTabLayout.addTab(tabEmprestimos); 
    mTabLayout.addTab(tabPersonal); 
    mTabLayout.setTabGravity(TabLayout.GRAVITY_FILL); 
} 
+0

你的xml在哪裏?預期的輸出,如果你可以添加 –

+0

其實它非常簡單,我會將它添加到問題 –

+0

*,但每個選項卡內有一些邊距*您想要在選項卡內或在選項卡按鈕下面添加該行? –

回答

5

在您的Drawable文件夾中創建一個xml

background.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:top="-10dp" android:right="-10dp" android:left="-10dp"> 
     <shape xmlns:android="http://schemas.android.com/apk/res/android" 
      android:shape="rectangle"> 
      <solid android:color="#1bd4f6" /> 
      <stroke 
       android:width="2dp" 
       android:color="#0288D1" /> 
     </shape> 
    </item> 

</layer-list> 

將其設置爲您TabLayout

<android.support.design.widget.TabLayout 
     android:background="@drawable/background" 
     android:id="@+id/tabs" 
     android:layout_width="match_parent" 
     android:layout_height="60dp" 
     app:tabIndicatorColor="@color/colorAccent" 
     app:tabTextColor="@color/white"/> 

變化值,並在需要的顏色!

輸出:

enter image description here

+0

@Felipe Castilhos你檢查了嗎? –

+1

謝謝@Charuක那伎倆! –

+0

顯然我錯了,試圖在選項卡上設置背景而不是在Tablayout本身。 –

2

你可以試試這個。解決方案

<FrameLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <android.support.design.widget.TabLayout 
     android:id="@+id/tabs" 
     android:layout_width="match_parent" 
     android:layout_height="60dp" 
     app:tabBackground="@color/white" 
     app:tabIndicatorColor="@color/colorAccent" 
     app:tabIndicatorHeight="2.5dp" 
     app:tabTextColor="@color/white"/> 

    <View 
     android:layout_width="match_parent" 
     android:layout_height="2.5dp" 
     android:layout_gravity="bottom" 
     android:background="#c6c6c6" /> 

</FrameLayout> 
+0

我做到了,將在TabLayoutSelector上顯示灰色的線條。但謝謝你的回覆。 –