简体   繁体   English

在Android中更改Actionbar的颜色

[英]Change Color of Actionbar in Android

I am trying to change the background color of actionbar in my App but this is showing different on my app. 我试图在我的应用程序中更改操作栏的背景颜色,但这在我的应用程序上显示不同。 Instead of coloring the actionbar the whole activity is color. 而不是着色动作栏,整个活动是颜色。

I am not sure why this is happening? 我不确定为什么会这样? I just want the main actionbar and settings actionbar colored. 我只想要主动作栏和设置操作栏着色。

Please check the screenshot. 请检查屏幕截图。

Main Activity Map: 主要活动地图:

在此输入图像描述

Preference Settings: 偏好设置:

在此输入图像描述

I also have transparent Actionbar with UP Navigation enabled for all my sub activities other than the main activity and preference settings activity. 除了主要活动和偏好设置活动之外,我还为所有子活动启用了透明的Actionbar并启用了UP导航。

I am not sure why it is showing like the above: 我不确定为什么它如上所示:

Here is style.xml (values-v14): 这是style.xml(values-v14):

<resources xmlns:android="http://schemas.android.com/apk/res/android">

<style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
    <item name="android:background">#FF5050</item>
</style>

<style name="dialogtheme" parent="@android:style/Theme.Holo.Light.DarkActionBar"></style>

<!-- Transparent ActionBar Style -->
<style name="AppTheme.Light.ActionBar.Transparent" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
    <item name="android:background">@android:color/transparent</item>
</style>

<!-- Activity Theme with transparent ActionBar -->
<style name="AppTheme.TransparentActionBar.Light" parent="@style/AppBaseTheme">
    <item name="android:actionBarStyle">@style/AppTheme.Light.ActionBar.Transparent</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:backgroundDimEnabled">true</item>
    <item name="android:windowActionBarOverlay">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:displayOptions">showHome|homeAsUp|showTitle</item>
    <item name="android:icon">@android:color/transparent</item>
    <item name="android:actionBarTabTextStyle">@style/ActionBarTabTextStyle.Tabtheme</item>
    <item name="android:actionBarDivider">@drawable/verticallinefordivder</item>
    <item name="android:actionBarTabStyle">@style/ActionBarTabStyle.MapsLocation</item>
</style>

<style name="simpledialog" parent="android:Theme.Holo.Light.Dialog">
    <item name="android:windowNoTitle">true</item>
</style>

<style name="ActionBarTabTextStyle.Tabtheme" parent="@style/AppBaseTheme">
    <item name="android:textSize">18sp</item>
    <item name="android:textStyle">bold</item>
    <item name="android:textColor">@android:color/black</item>
</style>

<style name="ActionBarTabStyle.MapsLocations" parent="@android:style/Widget.Holo.Light.ActionBar.TabView">
    <item name="android:background">@drawable/tab_indicator</item>
</style>

<style name="myPreferenceTheme" parent="@style/AppBaseTheme">
    <item name="android:textColor">@color/blue</item>
</style>

<style name="Widget.ActionButton" parent="@style/AppBaseTheme">
    <item name="android:background">?android:attr/actionBarItemBackground</item>
    <item name="android:paddingLeft">12dip</item>
    <item name="android:paddingRight">12dip</item>
    <item name="android:minWidth">56dip</item>
    <item name="android:minHeight">?android:attr/actionBarSize</item>
</style>

</resources>

A little change and you action bar will be red: 一点变化,你的动作栏将是红色的:

<style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
    <item name="android:actionBarStyle">@style/AppTheme.Light.ActionBar</item>
</style>

<style name="dialogtheme" parent="@android:style/Theme.Holo.Light.DarkActionBar"></style>

<!-- Transparent ActionBar Style -->
<style name="AppTheme.Light.ActionBar" parent="@android:style/Widget.Holo.ActionBar">
    <item name="android:background">#FF5050</item>

</style>

I have changed item in AppBaseTheme & AppTheme.Light.ActionBar . 我在AppBaseThemeAppTheme.Light.ActionBar中更改了项目。 Now you are good to go. 现在你很高兴。 let me know if it works however working at my end :P 让我知道它是否有效但无论如何工作:P

You can try set custom view in action bar. 您可以尝试在操作栏中设置自定义视图。

actionBar.setDisplayShowCustomEnabled(true);
actionBar.setCustomView(you_custom_layout);

I know this is not right answer to this question but if you want to edit your ActionBar, you can use this online Android Action Bar Style Generator . 我知道这不是这个问题的正确答案,但是如果你想编辑你的ActionBar,你可以使用这个在线Android Action Bar Style Generator

At least you can create a style and check yours to find differences and learn how to edit your ActionBar. 至少你可以创建一个样式并检查你的样式以找到差异并学习如何编辑你的ActionBar。

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

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