TabLayout(Androiddevise库)文本颜色
我正在使用Androiddevise库中的新TabLayout。 我设法设置textcolor状态列表使用tabLayout.setTabTextColors(colorstatelist)
我怎样才能实现相同的使用styles.xml?
通过XML属性:
<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"/>
此外,还有像tabIndicatorColor或tabIndicatorHeight属性进一步造型。
在代码中:
tabLayout.setTabTextColors( getResources().getColor(R.color.your_unselected_text_color), getResources().getColor(R.color.your_selected_text_color) );
由于这种旧的方式从API 23开始被弃用,替代scheme是:
tabLayout.setTabTextColors( ContextCompat.getColor(context, R.color.your_unselected_text_color), ContextCompat.getColor(context, R.color.your_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>
这里是代码布局的代码
<android.support.design.widget.TabLayout android:layout_width="match_parent" android:layout_height="wrap_content" style="@style/MyCustomTabLayout" />
上面的所有答案都是正确的,但我认为它更好地覆盖默认样式,只更改您想要更改的特定元素。 下面的例子将使文字变粗体:
<style name="Widget.TabItem" parent="TextAppearance.Design.Tab"> <item name="android:textStyle">bold</item> </style>
然后..,
app:tabTextAppearance="@style/Widget.TabItem"
你只需要重写android:textAppearance
风格。 因为TabLayout使用textAppearance。 这里是风格的小代码片段。
<!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Below will reference with our custom style --> <item name="android:textAppearance">@style/my_tab_text</item> </style> <style name="my_tab_text" parent="Base.TextAppearance.AppCompat"> <item name="android:textColor">@android:color/holo_blue_dark</item> </style>
如果你不想引用你的Apptheme,你可以使用下面的代码片段直接指定到TabLayout。
<android.support.design.widget.TabLayout android:layout_width="match_parent" android:layout_height="wrap_content" app:tabTextAppearance="@style/my_tab_text" app:tabIndicatorHeight="48dp"/>