TabLayout (Android Design Library) Text Color TabLayout (Android Design Library) Text Color android android

TabLayout (Android Design Library) Text Color


Via XML attributes:

<android.support.design.widget.TabLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        app:tabMode="fixed"        app:tabGravity="fill"        app:tabTextColor="@color/your_unselected_text_color"        app:tabSelectedTextColor="@color/your_selected_text_color"/>

Additionally, there are attributes like tabIndicatorColor or tabIndicatorHeight for further styling.

In code:

tabLayout.setTabTextColors(    getResources().getColor(R.color.your_unselected_text_color),    getResources().getColor(R.color.your_selected_text_color));

Since this old way is deprecated as of API 23, the alternative is:

tabLayout.setTabTextColors(    ContextCompat.getColor(context, R.color.your_unselected_text_color),    ContextCompat.getColor(context, R.color.your_selected_text_color));


Here is snippet code to override text style and selected text color

<style name="MyCustomTabLayout" parent="Widget.Design.TabLayout">    <item name="tabTextAppearance">@style/MyCustomTabText</item>    <item name="tabSelectedTextColor">@color/tab_text_act</item></style><style name="MyCustomTabText" parent="TextAppearance.AppCompat.Button">    <item name="android:textSize">14sp</item>    <item name="android:textColor">@color/tab_text</item></style>

And here is snippet code for layout

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


All the answers above are correct but I just think its better to override the default styles and only change the specific element you want to change.Example below will make the text bold:

<style name="Widget.TabItem" parent="TextAppearance.Design.Tab">    <item name="android:textStyle">bold</item></style>

Then..,

app:tabTextAppearance="@style/Widget.TabItem"