В Android ActionBar изменение цвета из манифеста не работает должным образом
Я изменяю цвет Android ActionBar, создавая свой собственный стиль и применяя манифест. но когда я работаю на эмуляторе, ActionBar и сам экран меняют цвет. Смотрите изображение:
Я пытался найти ответ на эту проблему, но не нашел решения. Вот Манифест:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.actionbartestapp"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="18" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/MyActionBar" >
<activity
android:name="com.example.actionbartestapp.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
А вот файл Styles.xml:
<resources>
<!--
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">@color/SmugeBlue</item>
</style>
</resources>
1 ответ
В вашем коде у вас есть
parent="android:Theme.Light
Обратите внимание на изменение в моем коде
parent="@android:style/Theme.Holo.Light"
Также обратите внимание <item name="android:actionBarStyle"
<item name="android:actionBarStyle">@style/MyActionBar</item> // for action bar only
Вместо этого вы имели
<item name="android:background">@color/SmugeBlue</item> // so it changes background for entire screen
Имейте ниже в соответствующих res / values /styles.xml
<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">#FF9D21</item> // change to blue color
</style>
и в манифесте
android:theme="@style/MyTheme"
Вы можете увидеть пример со снимком, хотя ответ на вопрос о значке меню переполнения показывает, что цвет панели действий изменился
Изменить значок переполнения панели действий
Для дальнейшей укладки
https://developer.android.com/training/basics/actionbar/styling.html