使用ViewPagerIndicator为选定的选项卡提供不同的颜色

我试图让ViewPagerIndicator的SampleTabsStyled 演示 文件改变当前选中的标签文本的颜色,但没有成功。

但是, SampleTitlesStyledTheme演示在标题/标签之间切换时确实会更改文本颜色。

当在样式中查找xml时 :

<resources> ... <style name="CustomTitlePageIndicator"> <item name="android:background">#18FF0000</item> <item name="footerColor">#FFAA2222</item> <item name="footerLineHeight">1dp</item> <item name="footerIndicatorHeight">3dp</item> <item name="footerIndicatorStyle">underline</item> <item name="android:textColor">#AA000000</item> <item name="selectedColor">#FF000000</item> <item name="selectedBold">true</item> </style> ... <style name="CustomTabPageIndicator" parent="Widget.TabPageIndicator"> <item name="android:background">@drawable/custom_tab_indicator</item> <item name="android:textAppearance">@style/CustomTabPageIndicator.Text</item> <item name="android:textColor">#FF555555</item> <item name="android:textSize">16sp</item> <item name="android:divider">@drawable/custom_tab_indicator_divider</item> <item name="android:dividerPadding">10dp</item> <item name="android:showDividers">middle</item> <item name="android:paddingLeft">8dp</item> <item name="android:paddingRight">8dp</item> <item name="android:fadingEdge">horizontal</item> <item name="android:fadingEdgeLength">8dp</item> </style> <style name="CustomTabPageIndicator.Text" parent="android:TextAppearance.Medium"> <item name="android:typeface">monospace</item> </style> ... </resources> 

我看到SampleTitlesStyledTheme演示使用CustomTitlePageIndicator风格,它定义了一个selectedColor项目。 所以(也许天真)我想补充

 <item name="selectedColor">#FF000000</item> 

SampleTabsStyled演示正在使用的样式CustomTabPageIndicator ,但是,唉,这不起作用。

这个问题似乎很明显,但我仍然会问:是否有一种方法(使用现在的样式xml)让SampleTabsStyled演示中的选项卡的当前选定文本具有与其他选项卡不同的颜色? 如果是这样,怎么样?

编辑

哦,我正在使用这个与ActionBarSherlock结合,如果这是重要的… … –

Solutions Collecting From Web of "使用ViewPagerIndicator为选定的选项卡提供不同的颜色"

假设你不介意创build一个额外的XML,首先尝试在你的CustomTabPageIndicator.Text (或CustomTabPageIndicator )像这样包括属性android:textColor

 <style name="CustomTabPageIndicator.Text" parent="android:TextAppearance.Medium"> <item name="android:textColor">@drawable/tab_text_color</item> ... </style> 

其中tab_text_color.xml放在res / drawable文件夹下:

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" android:color="@color/text_tab_selected" /> <item android:state_selected="false" android:color="@color/text_tab_unselected" /> </selector> 

最后,只需在位于res / values文件夹的颜色资源文件colors.xml中定义两种颜色@color/text_tab_selected@color/text_tab_unselected (如果它们不存在,则创build一个)。 例如:

 <?xml version="1.0" encoding="utf-8"?> <resources> <color name="text_tab_selected">#FF000000</color> <color name="text_tab_unselected">#FF555555</color> </resources> 

尝试这个

最简单的方法

 <android.support.design.widget.TabLayout xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabTextColor="@color/White" app:tabSelectedTextColor="@color/Blue" app:tabIndicatorColor="@color/Yellow" app:tabMode="fixed" app:tabGravity="fill"/> 

不要忘记添加这个依赖

 compile 'com.android.support:design:23.1.1'