任何人都可以解释为什么更新的设备,如。谷歌Nexus 5显示ActionBar中的溢出按钮,即使它有硬件菜单按钮,菜单选项被定义为“从不”?
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
<item
android:id="@+id/menuSettings"
android:showAsAction="never"
android:title="@string/action_settings"/>
<item
android:id="@+id/menuOff"
android:showAsAction="never"
android:title="@string/action_exit"/>
</menu>
在我忘记之前,我使用 AppCompact7 并且溢出按钮不会出现在其他设备上。三星S3 / S4具有相同的设置。
答案 0 :(得分:2)
android:showAsAction="never"
表示该项目不会在ActionBar上显示为图标,但仍会放在溢出菜单内(如果设备有硬件菜单按钮,则会放在普通菜单中)。
答案 1 :(得分:2)
如果您有AppCompat库的应用,则应使用app:showAsAction
代替:
所以菜单看起来像是:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >
<item
android:id="@+id/menuSettings"
app:showAsAction ="never"
android:title="@string/action_settings"/>
<item
android:id="@+id/menuOff"
app:showAsAction="never"
android:title="@string/action_exit"/>
</menu>
这是一个在使用AppCompat时被忽略的典型问题,这应该在lint错误中列出(我不能担保Eclipse,但AndroidStudio lint会显示这个)
答案 2 :(得分:1)
Android正在发展os。在旧版本的Android中有4个硬件键(部分)菜单,搜索,主页和后退。然后谷歌决定放弃搜索键。在api级别14中,我认为菜单键被认为是不必要的,并且添加了多个选择(具有与菜单相同的键码)键。 Nexus 5没有菜单键。它在布局的顶部或底部添加了3个点,提供了与菜单键类似的功能,并且可以与旧的菜单相关的xml和java类相似的方式访问。