我的操作栏中有5-6个项目。当我设置ShowAsAction = "never"
时,项目会显示在屏幕底部显示的旧样式菜单中,而我希望操作栏上显示三点样式图标 。此外,当我点击它时,菜单不会出现。
我的菜单文件 -
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/About"
android:title="About"
android:orderInCategory="1"
android:showAsAction="always"/>
<item
android:id="@+id/Settings"
android:title="settings"
android:orderInCategory="2"
android:showAsAction="always"/>
<item
android:id="@+id/item3"
android:title="Item3"
android:icon="@drawable/ic_launcher"
android:orderInCategory="3"
android:showAsAction="always"/>
<item
android:id="@+id/item4"
android:title="Item3"
android:icon="@drawable/ic_launcher"
android:orderInCategory="4"
android:showAsAction="always"/>
<item
android:id="@+id/item5"
android:title="Item3"
android:icon="@drawable/ic_launcher"
android:orderInCategory="5"
android:showAsAction="never"/>
<item
android:id="@+id/item6"
android:title="Item3"
android:icon="@drawable/ic_launcher"
android:orderInCategory="6"
android:showAsAction="never"/>
</menu>
答案 0 :(得分:10)
如果您的设备上有硬菜单按钮,则ActionBar
上不适合的菜单选项将被放置在设备的菜单按钮上。如果你有一个没有这个按钮的新设备,那么它们将被放置在溢出菜单(3个垂直点)
我为自定义layout
创建了自定义ActionBar
,以便我可以在所有设备上拥有相同的外观和功能。如果这是你想要的,你可以考虑做同样的事情。
答案 1 :(得分:8)
禁用Android,在具有物理菜单按钮的设备上显示溢出图标, 对于一些仍然想要它的人来说,这是一个解决方案:
将此功能添加到您的活动中:
private void forceShowActionBarOverflowMenu() {
try {
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
if (menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
}
} catch (Exception e) {
e.printStackTrace();
}
}
最后添加“forceShowActionBarOverflowMenu();”在活动中onCreate()的setContentView()之后。
答案 2 :(得分:5)
按以下方式嵌套菜单,如果您指定,您将获得溢出图标以及下拉图标。
<item
android:id="@+id/empty"
android:icon="@drawable/ic_action_overflow"
android:orderInCategory="101"
android:showAsAction="always">
<menu>
<item
android:id="@+id/action_show_ir_list"
android:icon="@drawable/ic_menu_friendslist"
android:showAsAction="always|withText"
android:title="List"/>
</menu>
</item>