【问题标题】:App compat actionbar v21 app icon is not showingAppcompat 操作栏 v21 应用程序图标未显示
【发布时间】:2015-01-14 00:29:23
【问题描述】:

出于材料设计目的,我升级到 avtionbar app compat v21。

但我观察到,与旧的 appcompat 库相比,它没有在操作栏和导航菜单中显示应用程序图标以及后退按钮占用了更多空间。

有人遇到过这个问题吗?我搜索了很多,但没有发现任何有用的东西。

下面的行也不起作用。

getSupportActionBar().setLogo(R.drawable.ic_launcher);

我正在使用类似于动作栏的样式

<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
        <item name="android:icon">@drawable/ic_action_bar</item>
        <item name="android:background">@drawable/action_bar_bg</item>
        <item name="android:windowContentOverlay">@null</item>
        <!-- Support library compatibility -->
        <item name="background">@drawable/action_bar_bg</item>
</style>

我知道其他解决方案,例如工具栏。但我正处于发布中间,由于时间限制,我正在寻找一些快速的解决方案(如果有的话)。添加工具栏需要更多时间。

【问题讨论】:

  • 看来它实际上是从内部实现本身中删除的。许多经过改进的 Google 应用在操作栏中没有图标。使用工具栏可以解决问题。 :)

标签: android android-actionbar android-appcompat material-design


【解决方案1】:

我将此添加到我的主题中:

<item name="android:windowNoTitle">false</item>
<item name="android:windowActionBar">true</item>
<item name="windowActionBar">true</item>

然后ActionBar又回来了。

注意:如果您使用 supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);那么您不能只这样做,而是必须将工具栏添加到您的布局中(无论如何,这并不是很多工作)

【讨论】:

  • 谢谢,一定会试试这个并告诉你
【解决方案2】:

setIcon/setLogo 方法只有在您设置了 DisplayOptions 时才有效,试试这个 -

actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE);
actionBar.setIcon(R.drawable.ic_launcher);

您还可以设置显示LOGO的选项(只需添加常量ActionBar.DISPLAY_USE_LOGO)。更多信息 - displayOptions

【讨论】:

    【解决方案3】:

    使用 getSupportActionbar 代替操作栏

    Actionbar actionbar = getSupportActionBar()
    actionbar.setDisplayHomeAsUpEnabled(true);
    actionBar.setHomeButtonEnabled(true);
    actionbar.setIcon(YOUR ICON);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多