4

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

3 回答 3

11

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

请参阅创建选项菜单

我为自定义创建了一个自layout定义,ActionBar以便我可以在所有设备上拥有相同的外观和功能。如果这是你想要的,你可以考虑做同样的事情。

于 2013-06-28T19:14:29.777 回答
8

Android disabled showing the overflow icon on devices which have physical menu button, for some of you who still want it,here is a solution:

add this function to your activity:

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();  
    }  
}  

and finally you add "forceShowActionBarOverflowMenu();" right after setContentView() in onCreate() in your activity.

于 2014-04-03T01:54:49.243 回答
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>

于 2013-12-01T22:31:22.237 回答