2015-07-21 71 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无法正常工作。然而,选项卡仍然只会展开以匹配最宽的选项卡(由文本的最长长度决定)。所以如果你定义的宽度比生成的标签大。标签右侧将会有一个空白空间。

相关问题