简体   繁体   English

如何更改Android操作栏v7中选项卡的样式(颜色)?

[英]How do I change the style(color) of tabs in action bar v7 of android ?

I'm trying this to change the color and style of tabs in action bar using the v7 support library. 我正在尝试使用v7支持库来更改操作栏中选项卡的颜色和样式。 But only the color of action bar is changed not the tabs. 但是只更改操作栏的颜色,不更改选项卡。 Please tell me what I'm doing wrong. 请告诉我我在做什么错。

<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
       parent="@style/Theme.AppCompat.Light.DarkActionBar">


    <!-- Support library compatibility -->
    <item name="actionBarStyle">@style/MyActionBar</item>
    <item name="actionBarTabStyle">@style/TabStyle</item>
</style>

<!-- ActionBar styles -->
<style name="MyActionBar"
       parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">


    <!-- Support library compatibility -->
    <item name="background">@color/action_bar</item>
</style>

<style name="TabStyle"
    parent="@style/Widget.AppCompat.ActionBar.TabView">

    <item name="background">@drawable/tab_bar_background</item>
</style>

Try this (if you use actionbar tabs): 尝试以下操作(如果您使用操作栏标签):

<style name="ActionBarTabs" parent="@style/Widget.AppCompat.Light.ActionBar.TabView.Inverse">
    <item name="titleTextStyle">@style/ActionBarTitle</item>
    <item name="android:titleTextStyle">@style/ActionBarTitle</item>
    <item name="background">@drawable/tab_bar_background</item>
    <item name="android:background">@drawable/tab_bar_background</item>
</style>

<style name="ActionBarTabBar" parent="@style/Widget.AppCompat.Light.ActionBar.TabBar.Inverse">
    <item name="android:showDividers">middle</item>
    <item name="android:divider">@drawable/list_divider_holo_light</item>
    <item name="android:dividerPadding">8dp</item>
    <item name="android:background">@color/actionbar_background</item>
</style>

<style name="TabTextStyle" parent="@style/Widget.AppCompat.ActionBar.TabText">
    <item name="android:textColor">@android:color/black</item>
</style>


and in your theme: 并在您的主题中:

 <style name="AppTheme" parent="@style/AppBaseTheme">
    ...
    <item name="android:actionBarTabStyle">@style/ActionBarTabs</item>
    <item name="actionBarTabStyle">@style/ActionBarTabs</item>
    <item name="android:actionBarTabTextStyle">@style/TabTextStyle</item>
    <item name="actionBarTabTextStyle">@style/TabTextStyle</item>
    <item name="android:actionBarTabBarStyle">@style/ActionBarTabBar</item>
    <item name="actionBarTabBarStyle">@style/ActionBarTabBar</item>
    ...
</style>

If you want to change the color of the menu items in the action bar you have to set the actionMenuTextColor in your theme style. 如果要更改操作栏中菜单项的颜色,则必须以主题样式设置actionMenuTextColor。

<style name="PortfolioTheme" parent="android:style/Theme.Holo.Light">
   <item name="android:actionMenuTextColor">#24598a</item>
   <item name="actionMenuTextColor">#24598a</item>
</style>

To customise tabs color, I suppose you should change your TabStyle item to be : 为了自定义标签颜色,我想您应该将TabStyle项更改为:

<item name="android:actionBarTabBarStyle">@style/TabStyle</item>

override "android:actionBarTabBarStyle" rather than "android:actionBarTabStyle" 覆盖“ android:actionBarTabBarStyle”,而不是“ android:actionBarTabStyle”

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM