如何在viewpagerindicator选项卡上更改选项卡背景?

Fly*_*iew 8 tabs android background colors viewpagerindicator

我正在使用Jake Wharton的ViewpagerIndicator库.我将选项卡代码与ActionBarSherlock库结合使用.一切正常,但我试图设置选项卡的背景,无法弄清楚如何.我想要一个带有深色标签和浅色片段(标签内容)的黑暗动作栏.

我使用的基本主题是Theme.Sherlock.Light.DarkActionBar.我通过使其成为设置选项卡属性的样式的父级(如文本颜色,指示器颜色等)来扩展此样式.这会导致暗动作条,光标和光碎片.

我找不到任何会改变标签背景的东西.我可以改变它的唯一方法是将整个应用程序更改为黑暗(使用Theme.Sherlock).到目前为止,这是我的代码:

<style name="vpiTheme" parent="Theme.Sherlock.Light.DarkActionBar">
    <item name="vpiTabPageIndicatorStyle">@style/CustomTabPageIndicator</item>
</style>

<style name="CustomTabPageIndicator" parent="Widget.TabPageIndicator">
    <item name="android:textColor">#FF000000</item>
    <item name="android:paddingTop">6dp</item>
    <item name="android:paddingBottom">6dp</item>
    <item name="android:paddingLeft">16dip</item>
    <item name="android:paddingRight">16dip</item>
    <item name="android:maxLines">2</item>
</style>
Run Code Online (Sandbox Code Playgroud)

Tam*_*sák 7

由于9-patch drawables大多是透明的,因此可以通过简单地向整个ViewPagerIndicator添加背景颜色来更改选项卡的颜色,如下所示:

<com.viewpagerindicator.TabPageIndicator
    android:id="@+id/indicator"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:background="#333333" />
Run Code Online (Sandbox Code Playgroud)

这样您就可以继续使用基于主题的主题Theme.Sherlock.Light.DarkActionBar,而不需要创建新的drawable.


gra*_*ant 0

首先向您的项目添加一个可绘制对象,下面的名称为 tab_indicator.xml:

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@android:color/black" />
<item android:state_focused="false" android:state_selected="true"  android:state_pressed="false" android:drawable="@android:color/white" />
<item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@android:color/black" />
<item android:state_focused="true" android:state_selected="true"  android:state_pressed="false" android:drawable="@android:color/white" />
</selector>
Run Code Online (Sandbox Code Playgroud)

然后按照您的风格引用您的绘图:

<item name="android:background">@drawable/tab_indicator</item>
Run Code Online (Sandbox Code Playgroud)

这将使活动选项卡具有白色背景,而其他选项卡具有黑色背景。