Android ActionBar徽标无法显示

时间:2015-09-07 15:01:05

标签: android android-actionbar

我为ActionBar实现了一个主题:

<style name="MyTheme"
    parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
    <item name="actionBarStyle">@style/MyActionBar</item>
</style>

<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar">
    <item name="android:background">@color/actionbar_background</item>
    <item name="android:displayOptions">useLogo|showHome</item>
    <item name="android:logo">@mipmap/ic_launcher</item>
    <item name="logo">@mipmap/ic_launcher</item>
    <item name="background">@color/actionbar_background</item>
</style>

我在AndroidManifest.xml中应用了它:

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/MyTheme">
...

我知道我的主题在我看到颜色变化时起作用,但我的动作栏图标永远不会出现。只有当我在我的活动的onCreate方法中明确调用此代码时才会看到它:

    ActionBar actionBar = getSupportActionBar();
    actionBar.setLogo(R.mipmap.ic_launcher);
    actionBar.setDisplayUseLogoEnabled(true);
    actionBar.setDisplayShowHomeEnabled(true);

我觉得为每个活动复制粘贴相同的代码是不正确的。请帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

新的compat库在工具栏(以前的ActionBar)中不使用徽标或应用程序图标。您应该查看关于它的样式指南:https://www.google.com/design/spec/layout/structure.html#structure-toolbars

从棒棒糖开始,您将获得新功能,例如在此屏幕上着色通知栏:

一个很酷的新功能是着色可以为你的品牌所需的所有ui元素着色。

答案 1 :(得分:0)

最好使用android.support.v7.widget.Toolbar,您可以按如下方式设置应用的操作栏:

Toolbar toolbar = (Toolbar) findViewById(R.id.apptoolbar);
setSupportActionBar(toolbar);
toolbar.setNavigationIcon(R.drawable.your_app_logo);

有关详细信息,请参阅Structure Of App Bar(称为ActionBar)