如何自定义Android Action Bar?

时间:2015-08-17 12:15:25

标签: android xml android-actionbar android-4.4-kitkat

我的Android应用操作栏没有显示在' AndroidManifest.xml"的标签中定义的图标。我也无法更改操作栏的颜色或操作栏上标题文字的颜色等内容。

我目前正在使用最低API 16(Android Jellybean 4.1)和目标SDK作为最新版本(在撰写本文时)为22。

我的styles.xml:

+ (NSUserDefaults *)groupUserDefaults
{
    static NSUserDefaults *sharedGroupUserDefaults = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        sharedGroupUserDefaults = [[self alloc] initWithSuiteName:@"group.company.appName"];        
    });
    return sharedGroupUserDefaults;
}

我的AndroidManifest.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>

每当我在手机上测试应用程序(运行4.4.4 KitKat API 19)时,我只会得到默认的黑色操作栏,没有应用程序图标。

有谁知道为什么这不会自定义?

所有的帮助都表示赞赏,提前谢谢。

注意:我是Android开发的新手。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

Counter++

更多信息:Android ActionBar