如何在Android studio的溢出菜单中添加图像?

时间:2016-07-08 06:09:51

标签: android android-studio android-actionbar android-menu overflow-menu

我正在为最新的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"/>

enter image description here

3 个答案:

答案 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();  
    }  
}