【问题标题】:How to change the color of tab 'underbar' in actionbarsherlock如何在actionbarsherlock中更改标签“下划线”的颜色
【发布时间】:2012-06-30 11:57:30
【问题描述】:

好吧,我失去了更多的理智。我无法找到/理解如何设计该死的东西。 我设法更改了选项卡本身的背景,但无法更改所选选项卡下栏的颜色。

如何将它从蓝色变为某种东西。

不幸的是,我的 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>

额外问题:我在哪里可以找到某些东西的属性(如背景)。

【问题讨论】:

    标签: android tabs android-actionbar actionbarsherlock


    【解决方案1】:

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

    如何:

    1. 使用 UI 为不同的项目选择颜色
    2. 完成后点击“下载 .ZIP”
    3. ZIP 文件包含您必须复制到项目 res/layout 和 res/drawableXXXX 文件夹

    【讨论】:

    • 下载并复制必要的文件后,我需要更改代码中的任何内容吗?
    • @Shrikant,您需要在清单文件中将主题分配给 Activity:
    • 感谢您的帮助,我现在可以运行它了。我只在清单文件中更改了它。但是想告诉 SherlockActivity 的其他用户,您还必须更改主类中的主题。您将在示例项目主类中得到这一行,public int THEME = R.style.Theme_Example;
    • @Shrikant,请问主类是什么意思?因为到目前为止,我下载了 zip 文件,我更改了清单,但我仍然没有让我的应用程序正确运行!我接下来要做什么?
    • 记得使用 Chrome 和 ActionbarStyleGenerator,否则可能无法正常工作。
    【解决方案2】:

    我发现对于背景,最好复制 Android SDK res 目录中的可绘制对象(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>
    

    希望对你有帮助!

    【讨论】:

    猜你喜欢
    • 2012-09-15
    • 2018-09-11
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    • 2015-04-08
    相关资源
    最近更新 更多