我正在为最新的Android版本开发溢出菜单,因为我这样做,文本项目被添加到溢出菜单但项目图像没有添加。所以请帮助我知道如何将图像添加到溢出菜单。
我附上了截图和代码。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/new_game"
android:icon="@drawable/ic_new_game"
android:title="@string/new_game"
android:showAsAction="ifRoom"/>
答案 0 :(得分:1)
在菜单xml中,使用以下语法嵌套菜单,您将开始获取带有图标的菜单
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/empty"
android:icon="@drawable/ic_action_overflow"
android:orderInCategory="101"
android:showAsAction="always">
<menu>
<item
android:id="@+id/new_game"
android:icon="@drawable/ic_new_game"
android:showAsAction="always|withText"
android:title="@string/new_game" />
</menu>
</item>
</menu>
答案 1 :(得分:0)
不幸的是,PopupMenu默认支持不支持图标。
替代方案包括创建自己的类,扩展PopupMenu或更简单地切换到使用ActionBar。有一个带有图标的Android兼容性弹出菜单的GitHub存储库,这可能会有所帮助。
在我建议使用ActionBar的三个选项中,因为android似乎大量推动使用ActionBar作为其指南中传统标题菜单的最佳实践。
我希望这会有所帮助。
@source - &gt; PopupMenu Item Icons
答案 2 :(得分:0)
这是一个常见问题,使用反映使图标可见
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
setIconEnable(menu, true);
return super.onCreateOptionsMenu(menu);
}
private void setIconEnable(Menu menu, boolean enable)
{
try
{
Class<?> clazz = Class.forName("com.android.internal.view.menu.MenuBuilder");
Method m = clazz.getDeclaredMethod("setOptionalIconsVisible", boolean.class);
m.setAccessible(true);
m.invoke(menu, enable);
} catch (Exception e)
{
e.printStackTrace();
}
}