我需要补偿Android 3平板电脑上缺少物理(甚至“软”)菜单按钮。我正在处理的应用程序通常会隐藏其活动的标题栏,但如果我希望操作栏出现在平板电脑上,我就无法这样做。我可以使用API中的某些内容来确定设备是否有菜单按钮吗?
如果我找不到这样的功能,我唯一想到的就是永远不要隐藏Android 3.0及更高版本的标题栏,但这有两个原因困扰我:
答案 0 :(得分:5)
LeffelMania有正确的想法,但有一点需要注意:如果您定位SDK 11(3.0)并使用无标题栏主题或覆盖某种自定义标题,您将只是简单的菜单,因为在目标设置为11的Honeycomb设备上,选项菜单位于标题栏本身,而不是底部状态栏中的假菜单按钮。所以要小心! (您可以通过设置较低的目标或将样式资源定位到v11来解决此问题,以便在这种情况下使用带有标题栏的Holo主题之一)。
答案 1 :(得分:2)
弃用:鉴于对Android框架和设计指南的更改,此答案不再准确。
Android手机保证有菜单按钮。 Honeycomb之前的所有手机都有菜单按钮,Honeycomb具有永远存在的软件按钮。如果您使用与菜单按钮(onCreateOptionsMenu(),onOptionsItemSelected()等相关联的正确回调),您可以安全地在任何运行Android的设备上接收这些回调。
答案 2 :(得分:0)
从API级别14开始,ViewConfiguration.hasPermanentMenuKey()可用于指示是否存在永久菜单键。