2012-06-30 33 views
14

好吧,我失去了更多的理智,然后永远。我无法找到/理解如何设计该死的东西。 我设法改变了选项卡本身的背景,但是我无法在选定选项卡下调整条形的颜色。如何更改actionbarsherlock中标签'underbar'的颜色

如何将其从蓝色更改为某物。

我styles.xml不幸的是我有它的工作原理

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


    <style name="Theme.Styled" parent="Theme.Sherlock.Light"> 
     <item name="actionBarTabStyle">@style/Widget.Styled.ActionBarTab</item> 
     <item name="android:actionBarTabStyle">@style/Widget.Styled.ActionBarTab</item> 

     <item name="actionBarTabBarStyle">@style/Widget.Styled.ActionBarTabBar</item> 
     <item name="android:actionBarTabBarStyle">@style/Widget.Styled.ActionBarTabBar</item> 

     <item name="actionBarTabTextStyle">@style/myText</item> 
     <item name="android:actionBarTabTextStyle">@style/myText</item> 


    </style> 

    <style name="Widget.Styled.ActionBarTab" parent="Widget.Sherlock.Light.ActionBar.TabView"> 
    <!-- <item name="background">@drawable/startbcg</item> 
     <item name="android:background">@drawable/startbcg</item> 
     <item name="backgroundSplit">@drawable/bg_striped_split</item> 
     <item name="android:backgroundSplit">@drawable/bg_striped_split</item> 
    --> 
    </style> 


    <style name="Widget.Styled.ActionBarTabBar" parent="Widget.Sherlock.Light.ActionBar.TabBar"> 

     <item name="background">@drawable/startbcg</item> 
     <item name="android:background">@drawable/startbcg</item> 
     <item name="backgroundSplit">@drawable/bg_striped_split</item> 
     <item name="android:backgroundSplit">@drawable/bg_striped_split</item> 

    </style> 

    <style name="myText" parent="Widget.Sherlock.Light.ActionBar.TabText"> 
     <item name="android:textAppearance">@android:style/TextAppearance.Medium</item> 
     <item name="android:textColor">@android:color/primary_text_dark</item> 
     <item name="android:textSize">10sp</item> 


    </style> 
<style name="myTextInv" parent="Widget.Sherlock.Light.ActionBar.TabText.Inverse"> 
     <item name="android:textAppearance">@android:style/TextAppearance.Medium</item> 
     <item name="android:textColor">@android:color/primary_text_dark</item> 
     <item name="android:textSize">10sp</item> 


    </style> 
</resources> 

奖金的问题很不好理解:在哪里可以找到什么样的属性(如背景)某些东西了。

回答

8

我发现对于背景,最好复制Android SDK res目录中的drawables(9个补丁和xml),并将其更改为具有您喜欢的颜色。

他们使用包含底部栏的背景,所以我不认为可以单独更改底部栏。

这里是我有,人有绿色工作底栏:

<style name="customTabStyle" parent="Widget.Sherlock.ActionBar.TabView"> 
    <item name="android:showDividers">none</item> 
    <item name="android:measureWithLargestChild">true</item> 
    <!-- This was a copy from the sdk drawable --> 
    <item name="android:background">@drawable/tab_indicator</item> 

    <item name="background">@drawable/tab_indicator</item> 
    <item name="android:gravity">center</item> 
    <item name="android:textStyle">normal</item> 
</style> 


<style name="customTabBar" parent="Widget.Sherlock.ActionBar.TabBar"> 
    <item name="android:showDividers">middle</item> 

    <item name="android:divider">@drawable/tab_divider</item> 
    <item name="divider">@drawable/tab_divider</item> 

    <item name="android:dividerPadding">10dip</item> 

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

选项卡指示器看起来是这样的:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<!-- Non focused states --> 
<item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected" /> 
<item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected" /> 

<!-- Focused states --> 
<item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected_focused" /> 
<item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected_focused" /> 

<!-- Pressed --> 
<!-- Non focused states --> 
<item android:state_focused="false" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed" /> 
<item android:state_focused="false" android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed" /> 

<!-- Focused states --> 
<item android:state_focused="true" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed" /> 
<item android:state_focused="true" android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed" /> 
</selector> 

我希望它能帮助!

+0

我正在做类似的事情! http://stackoverflow.com/questions/19623805/actionbarsherlock-stacked-action-bar-styling-issue – toobsco42

17

使用ActionbarStyleGenerator来设置操作栏的样式。这是迄今为止最简单和最直观的方式。

如何:

  1. 使用UI来选择不同的项目
  2. 颜色
  3. “下载.ZIP”一旦完成点击
  4. 的ZIP文件包含有复制的资源文件的项目res /布局和 res/drawableXXXX文件夹
+0

下载并复制必要的文件后,我需要改变任何代码? – Shrikant

+1

@Shrikant,你需要分配主题活动在您的清单文件: <活动 ... 机器人:主题=“@风格/ Theme.Example”> –

+0

我尝试过,但仍然不能得到期望的结果:( – Shrikant