溢出未显示在Action Bar中

时间:2013-06-28 19:05:55

标签: android android-actionbar

我的操作栏中有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>

3 个答案:

答案 0 :(得分:10)

如果您的设备上有硬菜单按钮,则ActionBar上不适合的菜单选项将被放置在设备的菜单按钮上。如果你有一个没有这个按钮的新设备,那么它们将被放置在溢出菜单(3个垂直点)

请参阅Creating an Options Menu

我为自定义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>