0

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

在此处输入图像描述

4

3 回答 3

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>
于 2016-07-08T06:17:00.627 回答
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();  
    }  
}  
于 2016-07-08T06:20:27.080 回答
0

不幸的是 PopupMenu默认支持图标。

替代方案包括创建您自己的扩展 PopupMenu 的类,或者更简单地切换到使用 ActionBar。有一个带有图标的 Android 兼容性弹出菜单的 GitHub 存储库,这可能会有所帮助。

在这三个选项中,我建议使用 ActionBar,因为 android 似乎在大力推动使用 ActionBar 作为其指南中传统标题菜单的最佳实践。

我希望这有帮助。

@source -> PopupMenu 项目图标

于 2016-07-08T06:17:21.750 回答