2012-10-13 250 views
8

我正在使用Jake Wharton的ViewpagerIndicator库。我将这些选项卡代码与ActionBarSherlock库一起使用。一切工作正常,但我试图风格的选项卡的背景,无法弄清楚如何。 我想要一个带有黑色标签和浅色碎片(标签内容)的黑色动作栏如何更改viewpagerindicator选项卡上的选项卡背景?

我使用的基本主题是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> 

回答

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> 

然后引用您绘制在你的风格:

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

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

+0

这会取代有色指标吗? – Flyview

+0

是的,没错。我忘记了我的目标是去除指标。这里的答案http://stackoverflow.com/questions/10364045/actionbarsherlock-actionbar-custom-background-with-divider应该是适用的,因为默认指标/背景是用9补丁图像完成的。 – grant

7

自9补丁绘项目大多是透明的,标签的颜色可以通过简单地增加一个背景颜色到整个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。

相关问题