Android:使用标签布局的样式设置自定义视图的文本颜色

时间:2016-10-03 10:05:53

标签: android android-layout tabs

我在一些片段中使用带有自定义视图的标签布局,我希望从标签布局样式设置自定义视图的文本颜色(因为自定义视图将在不同的地方重复使用,并且使用不同的文本颜色,我希望选项卡布局的不同样式来设置颜色)。我没有在自定义视图中定义任何文本颜色,但文本仍然显示为黑色而不是白色,这是在标签布局样式中设置的。

代码:

标签布局样式:

NSDictionary *workmode

自定义视图:

<style name="TabBar">
    <item name="android:background">@color/secondary_bg_color</item>
    <item name="tabIndicatorColor">@color/tab_indicator_color</item>
    <item name="tabIndicatorHeight">@dimen/tab_height</item>
    <item name="tabGravity">fill</item>
    <item name="tabTextColor">@color/white_text_color</item>
    <item name="tabSelectedTextColor">@color/white_text_color</item>
</style>

TabLabel样式:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:paddingBottom="@dimen/default_padding_bottom"
    android:paddingTop="@dimen/default_padding_top">

    <TextView
        android:id="@+id/tab_title"
        style="@style/TabLabel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="@dimen/payment_tab_padding_left" />

</LinearLayout>

用法:

<style name="TabLabel">
    <item name="android:textSize">@dimen/textsize_caption</item>
    <item name="android:textAlignment">textStart</item>
</style>

出了什么问题?为什么标签布局的文本颜色不会对自定义视图的文本颜色产生任何影响?

1 个答案:

答案 0 :(得分:0)

因为tabTextColor和tabSelectedTextColor仅适用于选项卡的默认textView,但它不适用于自定义选项卡。您可以在TabLayout的源实现中看到此行为。

您需要自己处理自定义标签的文字颜色。