在上下文操作栏的溢出菜单中显示图标
Show icons in Overflow Menu in Contextual Action Bar
我知道如何在 ActionBar 的溢出菜单中显示图标。这是我用的,
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
if (featureId == Window.FEATURE_ACTION_BAR && menu != null) {
if (menu.getClass().getSimpleName().equals("MenuBuilder")) {
try {
Method m = menu.getClass().getDeclaredMethod(
"setOptionalIconsVisible", Boolean.TYPE);
m.setAccessible(true);
m.invoke(menu, true);
} catch (NoSuchMethodException e) {
Log.e("TAG", "onMenuOpened", e);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
return super.onMenuOpened(featureId, menu);
}
但是当我长按我的 ListView 的任何项目时,CAB 就会启动。现在,当我打开 CAB 的溢出菜单时,该菜单没有任何图标。我该怎么做?
提前致谢。
我等了 2 天,但没有得到任何答复。所以自己解决了。
这里的想法很简单。您需要在 中创建自己的溢出项,并创建一个嵌套菜单来同时显示图标和文本。
查看下面的示例代码,
<item
android:id="@+id/overflow"
android:icon="@drawable/ic_overflow_white"
android:orderInCategory="201"
android:title="@string/overflow"
app:showAsAction="always">
<menu>
<item
android:id="@+id/cab_menu_select_all"
android:icon="@drawable/ic_select_all_grey"
android:orderInCategory="100"
android:title="@string/cab_menu_select_all"
app:showAsAction="always|withText"></item>
</menu>
</item>
这里的技巧是创建嵌套菜单。您可以添加任意数量的项目。
我知道如何在 ActionBar 的溢出菜单中显示图标。这是我用的,
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
if (featureId == Window.FEATURE_ACTION_BAR && menu != null) {
if (menu.getClass().getSimpleName().equals("MenuBuilder")) {
try {
Method m = menu.getClass().getDeclaredMethod(
"setOptionalIconsVisible", Boolean.TYPE);
m.setAccessible(true);
m.invoke(menu, true);
} catch (NoSuchMethodException e) {
Log.e("TAG", "onMenuOpened", e);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
return super.onMenuOpened(featureId, menu);
}
但是当我长按我的 ListView 的任何项目时,CAB 就会启动。现在,当我打开 CAB 的溢出菜单时,该菜单没有任何图标。我该怎么做?
提前致谢。
我等了 2 天,但没有得到任何答复。所以自己解决了。
这里的想法很简单。您需要在 中创建自己的溢出项,并创建一个嵌套菜单来同时显示图标和文本。
查看下面的示例代码,
<item
android:id="@+id/overflow"
android:icon="@drawable/ic_overflow_white"
android:orderInCategory="201"
android:title="@string/overflow"
app:showAsAction="always">
<menu>
<item
android:id="@+id/cab_menu_select_all"
android:icon="@drawable/ic_select_all_grey"
android:orderInCategory="100"
android:title="@string/cab_menu_select_all"
app:showAsAction="always|withText"></item>
</menu>
</item>
这里的技巧是创建嵌套菜单。您可以添加任意数量的项目。