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

时间:2012-10-13 03:31:26

标签: android colors background tabs 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>

2 个答案:

答案 0 :(得分: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" />

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

答案 1 :(得分:0)

首先在项目中添加一个drawable,下面的一个名为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>

然后以你的风格参考你的drawable:

<item name="android:background">@drawable/tab_indicator</item>

这将使活动标签具有白色背景而其他标签为黑色。