如何自定义 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>

我建议使用 Toolbar,因为它提供了几乎所有您想对操作栏进行的自定义设置, 你会找到一个工作示例 here

<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 ActionBar