使TabLayout文本变为粗体

Vah*_*iri 11 android android-tablayout

我正在使用Android设计支持库中的TabLayout并想要设置其文本样式(标题).特别是大胆.如何在XML中实现这一点?

<android.support.design.widget.TabLayout
android:id="@+id/sliding_tabs"
android:layout_width="match_parent"
app:tabTextColor="@color/white"
app:tabSelectedTextColor="@color/white"
app:tabIndicatorColor="@color/accent"
android:layout_height="wrap_content"
app:tabIndicatorHeight="3dp" />
Run Code Online (Sandbox Code Playgroud)

Vah*_*iri 28

首先,这必须添加到styles.xml:

<style name="TabLayoutTextStyle">
    <item name="android:textSize">16sp</item>
    <item name="android:textStyle">bold</item>
</style>
Run Code Online (Sandbox Code Playgroud)

即使您不想更改文本大小,也必须将其包含在样式中,否则不会显示任何内容.

然后必须将样式应用于TabLayout使用app:tabTextAppearance而不是style属性!

<android.support.design.widget.TabLayout
android:id="@+id/sliding_tabs"
android:layout_width="match_parent"
app:tabTextColor="@color/white"
app:tabSelectedTextColor="@color/white"
app:tabIndicatorColor="@color/accent"
android:layout_height="wrap_content"
app:tabIndicatorHeight="3dp" 
app:tabTextAppearance="@style/TabLayoutTextStyle" />
Run Code Online (Sandbox Code Playgroud)

要启用allcaps,您可以将以下内容添加到TabLayoutTextStyle:

<item name="android:textAllCaps">true</item>
Run Code Online (Sandbox Code Playgroud)

  • 它崩溃了,当我还在样式中声明textColor时工作. (7认同)

小智 5

您需要声明以下样式

<style name="TabLayoutTextStyle">
    <item name="android:textSize">16sp</item>
    <item name="android:textStyle">bold</item>
    <item name="android:textColor">@color/black</item>
</style>
Run Code Online (Sandbox Code Playgroud)

现在,您可以像这样使用它:

然后必须使用app:tabTextAppearance而不是style属性将样式应用于TabLayout!

<android.support.design.widget.TabLayout
     android:layout_width="match_parent"
     app:tabTextColor="@color/white"
     app:tabSelectedTextColor="@color/white"
     app:tabIndicatorColor="@color/accent"
     android:layout_height="wrap_content"
     app:tabTextAppearance="@style/TabLayoutTextStyle" />
Run Code Online (Sandbox Code Playgroud)