虽然我可以在我的 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;
}
产生这个显示:
鉴于此 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;
}
产生这个显示:
最佳答案
没关系。
溢出菜单仅显示文本。仅当项目作为操作显示在操作栏中时才使用图标。
如果你想在操作栏中看到你必须使用的图标
android:showAsAction="ifRoom"
代替
showAsAction="ifRoom"
关于android - 无法在 xml 中设置操作栏图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10688939/