我有一个自定义的TabLayout包含4个仅包含文本的项目。我希望我的tabLayout中的每个文本等距

时间:2019-06-11 04:35:57

标签: android tabs android-tablayout

我的TabLayout需要此

  1. 等距文字 like this

  2. 左右填充是恒定的。

  3. 所有文本的大小均应相同

  4. 标签不应该滚动 ***每个标签上的文字可以有任意长度的字符

1 个答案:

答案 0 :(得分:0)

styles.xml

中创建新样式
<!-- TabTextSizeAppearance to define your tab text size -->
<style name="TabTextSizeAppearance" parent="TextAppearance.AppCompat.Caption">
    <item name="android:textSize">14sp</item>
    <item name="android:textStyle">normal</item>
</style>

<!-- MyTabLayout to define TabLayout parameters -->
<style name="MyTabLayout" parent="Widget.Design.TabLayout">
    <item name="tabGravity">fill</item>
    <item name="tabMode">fixed</item>
    <item name="tabPaddingStart">4dp</item>
    <item name="tabPaddingEnd">4dp</item>
    <item name="tabSelectedTextColor">@color/black</item>
    <item name="tabTextAppearance">@style/TabTextSizeAppearance</item>
</style>

最后,将其添加到您的dimens.xml

<dimen name="design_tab_text_size_2line" tools:ignore="PrivateResource">14sp</dimen>

dimen的大小应与TabTextSizeAppearance的文本大小相同,以确保即使长文本也可以保持相同的大小

然后在您的xml中使用它

<android.support.design.widget.TabLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    style="@style/MyTabLayout"
   >

    <android.support.design.widget.TabItem
      ...


</android.support.design.widget.TabLayout>