在操作栏和菜单键中显示菜单项

时间:2013-11-24 09:16:21

标签: android android-layout android-actionbar android-menu

我在res / menu / mymenu.xml中有一个菜单项:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/action_settings"
        android:icon="@drawable/ic_action_settings"
        android:title="@string/action_settings"
        android:orderInCategory="100"
        android:showAsAction="ifRoom"  />

</menu>

但是当我按下菜单键时,菜单不会出现。它只显示在动作栏中。我也试过了android:showAsAction="never"但是那个时候项目只显示在菜单键屏幕上。我想在操作栏和按菜单键时显示的屏幕中显示项目。 提前谢谢。

2 个答案:

答案 0 :(得分:5)

请记住,所有菜单项仅显示一次。您无法指示菜单两次显示单个菜单项,无论是溢出中的一次还是操作栏中的一次。

使用android:showAsAction="never",您正在指示Android将菜单项收入溢出菜单。 (在没有硬件菜单按钮的设备上,菜单项将显示在操作栏溢出中。在带有硬件菜单按钮的设备上,菜单项将显示在屏幕底部的弹出菜单中,这也是已知的当动作栏溢出。)

使用android:showAsAction="always",你会做相反的事情;无论是否有足够的空间,它总会出现在操作栏中。

虽然我完全不鼓励您采取这种方法,但严格回答您的问题是提供两个菜单项:一个使用模式never,另一个使用模式always

我建议您重新考虑是否要在溢出菜单中使用该项目。仔细考虑Google's recommendations on the action bar,然后显示它或将其放在溢出中 - 而不是两者。另请注意,如果在使用ifRoom时有足够的空间,不同的设备配置可能会允许显示更多项目。

答案 1 :(得分:0)

只需复制config/blueprints.js中具有相同标题但ID不同的菜单项。然后在your_menu.xml中使用与onOptionsItemSelected()指向新R.id.action_settingsShown的位置相同的代码函数。

R.id.action_settingsHidden