如何自定义 Android 操作栏?
How to Customize the Android Action Bar?
我的 Android 应用程序的操作栏不显示“AndroidManifest.xml”标签中定义的图标,我也无法更改操作栏的颜色等内容,或者操作栏上标题文本的颜色。
我目前使用的最小 API 16(Android Jellybean 4.1)和目标 SDK 是最新的(在撰写本文时),即 22。
我的styles.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/ActionBar</item>
</style>
<style name="ActionBar" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">#006699</item>
</style>
</resources>
我的AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="PACKAGE_NAME" >
<application
android:allowBackup="true"
android:icon="@drawable/logo_custom"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:logo="@drawable/logo_custom"
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>
</manifest>
每当我在 phone (运行 4.4.4 KitKat API 19) 上测试应用程序时,我只会看到没有应用程序图标的默认黑色操作栏。
有谁知道为什么这不能自定义?
感谢所有帮助,提前致谢。
注意:我是 Android 开发新手。
在您的 Styles.xml 中试试这个。
<style name="AppBaseTheme" parent="Theme.AppCompat.Light"></style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<item name="actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar">
<!-- Support library compatibility -->
<item name="colorControlNormal">@color/light_gray</item>
<item name="background">@color/white</item>
<item name="android:textColor">@color/white</item>
</style>
编辑:
您可以通过编程更改 Actionbar 的背景。
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.actionbar_background_color)));
您必须像这样在 color.xml 中定义您的颜色代码。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="actionbar_background_color">#f4f2f2</color>
</resources>
<style name="Theme.AndroidDevelopers" parent="android:style/Theme.Holo.Light">
<item name="android:selectableItemBackground">@drawable/ad_selectable_background</item>
<item name="android:popupMenuStyle">@style/MyPopupMenu</item>
<item name="android:dropDownListViewStyle">@style/MyDropDownListView</item>
<item name="android:actionBarTabStyle">@style/MyActionBarTabStyle</item>
<item name="android:actionDropDownStyle">@style/MyDropDownNav</item>
<item name="android:listChoiceIndicatorMultiple">@drawable/ad_btn_check_holo_light</item>
<item name="android:listChoiceIndicatorSingle">@drawable/ad_btn_radio_holo_light</item>
</style>
我的 Android 应用程序的操作栏不显示“AndroidManifest.xml”标签中定义的图标,我也无法更改操作栏的颜色等内容,或者操作栏上标题文本的颜色。
我目前使用的最小 API 16(Android Jellybean 4.1)和目标 SDK 是最新的(在撰写本文时),即 22。
我的styles.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/ActionBar</item>
</style>
<style name="ActionBar" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">#006699</item>
</style>
</resources>
我的AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="PACKAGE_NAME" >
<application
android:allowBackup="true"
android:icon="@drawable/logo_custom"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:logo="@drawable/logo_custom"
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>
</manifest>
每当我在 phone (运行 4.4.4 KitKat API 19) 上测试应用程序时,我只会看到没有应用程序图标的默认黑色操作栏。
有谁知道为什么这不能自定义?
感谢所有帮助,提前致谢。
注意:我是 Android 开发新手。
在您的 Styles.xml 中试试这个。
<style name="AppBaseTheme" parent="Theme.AppCompat.Light"></style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<item name="actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar">
<!-- Support library compatibility -->
<item name="colorControlNormal">@color/light_gray</item>
<item name="background">@color/white</item>
<item name="android:textColor">@color/white</item>
</style>
编辑:
您可以通过编程更改 Actionbar 的背景。
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.actionbar_background_color)));
您必须像这样在 color.xml 中定义您的颜色代码。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="actionbar_background_color">#f4f2f2</color>
</resources>
<style name="Theme.AndroidDevelopers" parent="android:style/Theme.Holo.Light">
<item name="android:selectableItemBackground">@drawable/ad_selectable_background</item>
<item name="android:popupMenuStyle">@style/MyPopupMenu</item>
<item name="android:dropDownListViewStyle">@style/MyDropDownListView</item>
<item name="android:actionBarTabStyle">@style/MyActionBarTabStyle</item>
<item name="android:actionDropDownStyle">@style/MyDropDownNav</item>
<item name="android:listChoiceIndicatorMultiple">@drawable/ad_btn_check_holo_light</item>
<item name="android:listChoiceIndicatorSingle">@drawable/ad_btn_radio_holo_light</item>
</style>