基本上我对在Android设备3.0及更高版本上带有和不带菜单按钮的设备显示选项菜单的时间和方式感到困惑。
专注于选项菜单,我从阅读中了解到选项菜单在onCreateOptionsMenu(无论是通过菜单按钮还是操作栏)中膨胀,而Google开发者网站指出屏幕上显示的选项菜单中的项目取决于您开发的版本,即底部菜单或操作栏。
我在Nexus 4和三星手机上尝试了一些应用程序(例如gmail),两者都是Jelly Bean。 Nexus没有菜单按钮,gmail显示操作栏中的选项菜单。在三星上有一个菜单按钮,没有操作栏,你必须按菜单。
Android是否自动处理选项菜单,或者应用程序中是否有一些代码确定菜单按钮是否存在?
此外,让我更加困惑的是(即与此思想相矛盾)Android开发者网站说,如果你使用Theme.Holo,你会得到一个操作栏,告诉我它并不隐含操作栏的显示方式。
感谢任何指导。
答案 0 :(得分:1)
如果要检查设备是否有软键,请使用hasPermanentMenuKey
boolean hasMenuKey = ViewConfiguration.get(context).hasPermanentMenuKey();
如果返回true,则表示您没有软键。
如果猜测大多数Android应用程序都有某种内置功能来进行类似检查并确定是否需要菜单。
答案 1 :(得分:0)
通常从Android 4.0开始,嵌入ActionBar和菜单按钮的菜单选项被删除,但它不一定只是可选的,您必须在代码中处理它以向用户显示 对于三星的菜单按钮我猜它只在三星机型中,因为如果你可以看看其他设备制造商的新机型,根本没有菜单按钮。三星将操作栏中的选项按钮带到菜单按钮(硬件按钮)。