如何在 Android studio 中将图像添加到溢出菜单?
How to add images to overflow menu in Android studio?
我正在为最新的 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"/>
在您的菜单 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>
遗憾的是,默认情况下 PopupMenu 不 支持图标。
备选方案包括创建您自己的 class 以扩展 PopupMenu 或更简单地切换到使用 ActionBar。有一个 GitHub 存储库,用于 Android 带有图标的兼容性弹出菜单,这可能会有帮助。
在这三个选项中,我建议使用 ActionBar,因为 android 似乎大力推动使用 ActionBar 作为其指南中传统 header 菜单的最佳实践。
希望对您有所帮助。
@source -> PopupMenu Item Icons
这是一个常见问题,使用 Reflect 使图标可见
@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();
}
}
我正在为最新的 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"/>
在您的菜单 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>
遗憾的是,默认情况下 PopupMenu 不 支持图标。
备选方案包括创建您自己的 class 以扩展 PopupMenu 或更简单地切换到使用 ActionBar。有一个 GitHub 存储库,用于 Android 带有图标的兼容性弹出菜单,这可能会有帮助。
在这三个选项中,我建议使用 ActionBar,因为 android 似乎大力推动使用 ActionBar 作为其指南中传统 header 菜单的最佳实践。
希望对您有所帮助。
@source -> PopupMenu Item Icons
这是一个常见问题,使用 Reflect 使图标可见
@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();
}
}