2015-07-21 73 views
4

我正在使用DesignSupportLibrary(v22.2.0),並希望TabLayout中的選項卡具有相同的寬度 - 無論選項卡文本的長度如何。我試過MODE_FIXED,但它仍然顯示不同寬度的標籤。下面是XML:如何在TabLayout中創建相同大小的選項卡

<android.support.design.widget.TabLayout 
    android:id="@+id/tab_layout" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="?attr/colorPrimary" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    app:tabMode="fixed"/> 

回答

7

如果要指定每個標籤的最小寬度,可以設置它的風格:

<style name="MyTabLayoutStyle" parent="ThemeOverlay.AppCompat.Dark.ActionBar"> 
    <item name="tabMinWidth">100dp</item> 
</style> 

,然後設置主題,以這種風格,而不是(你可以刪除tabMode屬性以及):

<android.support.design.widget.TabLayout 
    android:id="@+id/tab_layout" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="?attr/colorPrimary" 
    android:theme="@style/MyTabLayoutStyle"/> 

或者,你可以在TabLayout直接設置tabMinWidth:

<android.support.design.widget.TabLayout 
    android:id="@+id/tab_layout" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="?attr/colorPrimary" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    app:tabMinWidth="100dp"/> 

附加說明:除非您定義TabLayout的layout_width(而不是使用「wrap_content」),否則看起來MODE_FIXED無法正常工作。然而,選項卡仍然只會展開以匹配最寬的選項卡(由文本的最長長度決定)。所以如果你定義的寬度比生成的標籤大。標籤右側將會有一個空白空間。

相關問題