虽然我可以在我的Java代码中设置Action Bar图标,但是当我在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;
}
制作此显示:
答案 0 :(得分:2)
没关系。
溢出菜单仅显示文字。仅当项目在操作栏中显示为操作时才使用图标。
如果要查看操作栏中的图标,则必须使用
android:showAsAction="ifRoom"
而不是
showAsAction="ifRoom"