如何在TabLayout中创建相同大小的选项卡

时间:2015-07-21 18:51:50

标签: android

我正在使用DesignSupportLibrary(v22.2.0)并希望TabLayout中的选项卡具有相同的宽度 - 无论选项卡文本长度如何。我尝试过MODE_FIXED,但它仍然显示不同宽度的标签。这是xml:

<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"/>

1 个答案:

答案 0 :(得分: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无法正常工作。但是,选项卡仍将仅展开以匹配最宽的选项卡(由最长文本长度确定)。因此,如果您定义的宽度大于生成的标签。选项卡右侧将有一个空白区域。