首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AppCompat工具栏没有显示菜单XML中设置的图标

AppCompat工具栏没有显示菜单XML中设置的图标
EN

Stack Overflow用户
提问于 2014-12-06 23:57:26
回答 3查看 5.7K关注 0票数 2

我无法获得图标显示与或不使用标题文本使用AppCompat工具栏。标题文本看起来很好,但是根本没有显示任何图标。

图标和标题文本在menu.xml中使用以下xml定义:

代码语言:javascript
运行
复制
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  xmlns:android="http://schemas.android.com/apk/res/android"
  tools:context="ui.CreateProfileActivity">
  <item
    android:id="@+id/create_profile_submit"
    android:title="@string/create_profile_submit"
    app:icon="@drawable/ic_done_white_24dp"
    app:showAsAction="always"/>
</menu>

在我的styles.xml中,我显式地将图标颜色设置为白色(工具栏的背景是蓝色的):

代码语言:javascript
运行
复制
<item name="actionBarIconColor">#fff</item>

这是用于显示工具栏的toolbar_actionbar.xml:

代码语言:javascript
运行
复制
<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    app:theme="@style/ActionBarThemeOverlay"
    app:popupTheme="@style/ActionBarPopupThemeOverlay"
    android:id="@+id/toolbar_actionbar"
    android:background="?attr/colorPrimaryDark"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

当我在肖像或风景中启动应用程序时,图标不会出现。

如何让工具栏显示:

  1. 图标和文本
  2. 只有图标(见下面的编辑)

编辑: 2014.12.14

我能够通过更新menu.xml“图标”属性来使用"android“而不是"app”来显示图标,而且只有图标。新的xml如下:

代码语言:javascript
运行
复制
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  xmlns:android="http://schemas.android.com/apk/res/android"
  tools:context="ui.CreateProfileActivity">
  <item
    android:id="@+id/create_profile_submit"
    android:title="@string/create_profile_submit"
    android:icon="@drawable/ic_done_white_24dp"
    app:showAsAction="always"/>
</menu>

我仍然无法在肖像模式下同时显示图标和文本。在景观模式下,这两者都显示出来了。

EN

回答 3

Stack Overflow用户

发布于 2014-12-07 00:36:39

获取活动中工具栏的引用,并设置图标或其大部分部件。

代码语言:javascript
运行
复制
ToolBar toolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
toolbar.setLogo(R.drawable.yourdrawable);
toolbar.setTitle("Your Title");
toolbar.setSubtitle("list");
toolbar.setNavigationIcon(R.drawable.drawer_icon);

我知道这超出了我们对这个问题的要求,但是我想更多地了解你可以尝试解决这个问题的方法。

我希望这能帮上忙。

票数 4
EN

Stack Overflow用户

发布于 2015-10-06 18:43:34

尝试以下菜单:用于工具栏

`

代码语言:javascript
运行
复制
<item
    android:id="@+id/menu_overflow"
    android:enabled="true"
    android:icon="@drawable/ic_menu_moreoverflow_mtrl_alpha"
    app:showAsAction="always"
    android:title="">
    <menu>
        <item
            android:id="@+id/action_more"
            android:icon="@drawable/ic_more_apps"
            android:orderInCategory="100"
            android:showAsAction="never"
            android:title="More apps"/>
        <item
            android:id="@+id/action_rate"
            android:icon="@drawable/ic_rating"
            android:orderInCategory="100"
            android:showAsAction="never"
            android:title="Rate this app"/>
        <item
            android:id="@+id/action_feedback"
            android:icon="@drawable/ic_feedback"
            android:orderInCategory="100"
            android:showAsAction="never"
            android:title="Feedback"/>
        <item
            android:id="@+id/action_share"
            android:icon="@drawable/ic_share"
            android:orderInCategory="100"
            android:showAsAction="never"
            android:title="Share this app"/>
    </menu>
</item>

`

尝试使用此菜单进行操作栏

`

代码语言:javascript
运行
复制
<item
    android:id="@+id/menu_overflow"
    android:enabled="true"
    android:icon="@drawable/ic_menu_moreoverflow_mtrl_alpha"
    android:showAsAction="always"
    android:title="">
    <menu>
        <item
            android:id="@+id/action_more"
            android:icon="@drawable/ic_more_apps"
            android:orderInCategory="100"
            android:showAsAction="never"
            android:title="More apps"/>
        <item
            android:id="@+id/action_rate"
            android:icon="@drawable/ic_rating"
            android:orderInCategory="100"
            android:showAsAction="never"
            android:title="Rate this app"/>
        <item
            android:id="@+id/action_feedback"
            android:icon="@drawable/ic_feedback"
            android:orderInCategory="100"
            android:showAsAction="never"
            android:title="Feedback"/>
        <item
            android:id="@+id/action_share"
            android:icon="@drawable/ic_share"
            android:orderInCategory="100"
            android:showAsAction="never"
            android:title="Share this app"/>
    </menu>
</item>

`

票数 2
EN

Stack Overflow用户

发布于 2019-07-07 10:34:31

我觉得现在太晚了。但是这个代码很好用。你可以试试这个。

代码语言:javascript
运行
复制
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    if (menu instanceof MenuBuilder) {
        ((MenuBuilder) menu).setOptionalIconsVisible(true);
    }
    getMenuInflater().inflate(R.menu.menu_quran, menu);
    return true;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27337970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档