MenuItem出现在底栏上

时间:2013-05-18 11:41:50

标签: android android-actionbar actionbarsherlock slidingmenu

当我给菜单充气时,部分项目会显示在底栏中,而其他项目会显示在Android 2的常用选项菜单中。 我在清单中尝试使用android:uiOptions="none",但随后底栏消失,选项菜单仍然存在。

我想要做的是将一个菜单项添加到操作栏!

这是菜单布局

<menu xmlns:android="http://schemas.android.com/apk/res/android" >  
<item
    android:id="@+id/menu_support"
    android:icon="@drawable/icon_close" 
    android:showAsAction="always"
    android:title="@string/menu_support"
    android:visible="true"/>    
<item
    android:id="@+id/menu_feedback"
    android:orderInCategory="100"
    android:showAsAction="never"
    android:title="@string/menu_feedback"/>    
<item
    android:id="@+id/menu_settings"
    android:orderInCategory="100"
    android:showAsAction="never"
    android:title="@string/menu_settings"/>
</menu>

这是 onCreateMenuOptions

@Override
public boolean onCreateOptionsMenu(Menu menu) {             
    getSupportMenuInflater().inflate(R.menu.activity_main, menu); return true;
}

1 个答案:

答案 0 :(得分:2)

选项菜单始终可见,因为新设计是设备没有菜单按钮。

我猜你有setDisplayShowHomeEnabled(false)setDisplayShowTitleEnabled(false)。然后,当您将android:uiOptions设置为无时,这会导致Actionbar消失,但会保留选项菜单图标。如果您要停用顶部splitActionBarWhenNarrow,则需要将其保留为Actionbar

最后来了解你的问题的关键。您有一个项目设置为android:showAsAction=always。该选项将始终显示为操作栏上的图标。其他两个永远不会。它们将始终显示在选项菜单中。

never =在操作栏上显示为操作图标。

ifRoom =如果操作栏上有空间,则在操作栏上显示为操作图标,但在没有空间时放入选项菜单。

always =始终显示在选项菜单中。

| withText =如果操作栏上有空间,则添加提示以显示操作的标题。

经验法则是仅设置两个始终显示为操作的项目,以便Actionbar不会在小型设备上拥挤。在较大的设备上,ifRoom选项将显示为Actionbar项,而不是选项菜单项。