android - 无法在 xml 中设置操作栏图标

标签 android android-actionbar android-icons

虽然我可以在我的 Java 代码中设置操作栏图标,但是当我在我的 XML 中设置它们时我无法让它们显示。我更喜欢用 XML 设置它们。

下面是我为实现同一目标所做的两次尝试 - 操作栏上的三个图标。您能解释一下为什么第二种方法会失败吗?

(注意,在我的最终版本中,我打算在溢出菜单中保留三个中的两个,我只是想在测试期间显示所有三个。)

这个 XML:

<?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
        <item   android:id="@+id/menuConfig"
                android:title="Configuration"
        />
        <item   android:id="@+id/menuAbout"
                android:title="About" 
        />
        <item   android:id="@+id/menuHelp"
                android:title="Help" 
        />
    </menu>

还有这个 Java:

@Override
public boolean onCreateOptionsMenu(Menu menu) 
{
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.optionsmenu, menu);

    MenuItem settings = menu.findItem(R.id.menuConfig);     
    settings.setIcon(R.drawable.settings);
    settings.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);

    MenuItem about = menu.findItem(R.id.menuAbout);     
    about.setIcon(R.drawable.about);
    about.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);

    MenuItem help = menu.findItem(R.id.menuHelp);       
    help.setIcon(R.drawable.help);
    help.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);

    return true;
}   

产生这个显示:

enter image description here

鉴于此 XML:

<?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item   android:id="@+id/menuConfig"
            android:title="Configuration"
            android:icon="@drawable/settings"
            showAsAction="ifRoom"
    />
    <item   android:id="@+id/menuAbout"
            android:title="About" 
            android:icon="@drawable/about"
            showAsAction="ifRoom"
    />
    <item   android:id="@+id/menuHelp"
            android:title="Help" 
            android:icon="@drawable/help"
            showAsAction="ifRoom"
    />
</menu>

还有这个 Java:

@Override
public boolean onCreateOptionsMenu(Menu menu) 
{
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.optionsmenu, menu);

    return true;
}   

产生这个显示:

enter image description here

最佳答案

没关系。

溢出菜单仅显示文本。仅当项目作为操作显示在操作栏中时才使用图标。

如果你想在操作栏中看到你必须使用的图标

android:showAsAction="ifRoom"

代替

showAsAction="ifRoom"

关于android - 无法在 xml 中设置操作栏图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10688939/

相关文章:

android - 棉花糖上未显示圆形图标

android - 为什么 Android Asset Studio 不生成 ldpi 启动器图标?

Android Espresso - 检查 RecyclerView 中是否不存在文本

android - MultiDexApplication 无法识别

android - 如何在导航栏上添加菜单按钮

android - 从 Android 开发者那里下载整个项目?

Android Studio 的 Asset Studio 不显示 Material Icons 选项

android - AndroidManifest.xml中缺少AdActivity

Android计算下载速度测试

java - Android 2.3 中的操作栏