Android:ActionBar 自定义问题
Android: Problems with ActionBar Customization
我刚刚开始学习 Android 我自己的开发,我遇到了一个问题,我需要帮助。
我正在了解 ActionBar
。我有兴趣自定义 ActionBar
.
我更改其背景颜色和项目间距所遵循的步骤是:
这个想法是要有一个带有 ActionBar
的基本主题。然后自定义它。代码:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="android:actionBarStyle">@style/MyActionBarTheme</item>
</style>
<style name="MyActionBarTheme" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">#F44336</item>
</style>
接下来,在我的 AndroidManifest.xml
中,我使用我创建的自定义主题。代码:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".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>
但是我的ActionBar
的颜色还是黑色的。我究竟做错了什么?我错过了什么吗?
您正在使用 appcompat-v7
操作栏向后移植。要设置操作栏的颜色,请在您的主题中使用 colorPrimary
,而不是 android:background
。
例如,这个主题设置了三种主要的色调:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Apptheme" parent="Theme.AppCompat">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/accent</item>
</style>
</resources>
这个特定的示例恰好通过颜色资源定义了颜色值,在 res/values/colors.xml
文件中:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="primary">#3f51b5</color>
<color name="primary_dark">#1a237e</color>
<color name="accent">#ffee58</color>
</resources>
然后使用自定义主题的 activity 获取主要颜色作为操作栏背景:
(来自 this sample project)
我刚刚开始学习 Android 我自己的开发,我遇到了一个问题,我需要帮助。
我正在了解 ActionBar
。我有兴趣自定义 ActionBar
.
我更改其背景颜色和项目间距所遵循的步骤是:
这个想法是要有一个带有
ActionBar
的基本主题。然后自定义它。代码:<!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="android:actionBarStyle">@style/MyActionBarTheme</item> </style> <style name="MyActionBarTheme" parent="@android:style/Widget.Holo.Light.ActionBar"> <item name="android:background">#F44336</item> </style>
接下来,在我的
AndroidManifest.xml
中,我使用我创建的自定义主题。代码:<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".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>
但是我的ActionBar
的颜色还是黑色的。我究竟做错了什么?我错过了什么吗?
您正在使用 appcompat-v7
操作栏向后移植。要设置操作栏的颜色,请在您的主题中使用 colorPrimary
,而不是 android:background
。
例如,这个主题设置了三种主要的色调:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Apptheme" parent="Theme.AppCompat">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/accent</item>
</style>
</resources>
这个特定的示例恰好通过颜色资源定义了颜色值,在 res/values/colors.xml
文件中:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="primary">#3f51b5</color>
<color name="primary_dark">#1a237e</color>
<color name="accent">#ffee58</color>
</resources>
然后使用自定义主题的 activity 获取主要颜色作为操作栏背景:
(来自 this sample project)