1

我需要弥补 Android 3 平板电脑上缺少物理(甚至是“软”)菜单按钮的问题。我正在开发的应用程序通常会隐藏其活动的标题栏,但如果我希望操作栏出现在平板电脑上,我不能这样做。我可以使用 API 中的某些内容来确定设备是否有菜单按钮?

如果找不到这样的功能,我唯一能想到的就是永远不要在 Android 3.0 及更高版本上隐藏标题栏,但这让我感到困扰有两个原因:

  1. 我相信 Android 3.0(或更高版本的 API)最终会支持手机,手机可能会有菜单按钮
  2. 我不希望对那个 SDK 版本进行硬编码(也许我永远无法隐藏 Android 3.0 及更高版本的标题栏,但是我冒着不隐藏手机上的标题栏的风险)
4

3 回答 3

5

LeffelMania 的想法是正确的,但有一个警告:如果您以 SDK 11 (3.0) 为目标并使用无标题栏主题或使用某种自定义标题覆盖,您将只是简单的无菜单,因为目标设置为 11 的蜂窝设备选项菜单位于标题栏本身,而不是底部状态栏中的假菜单按钮。所以在那儿要小心!(在这种情况下,您可以通过设置较低的目标或将样式资源定位到 v11 以使用带有标题栏的 Holo 主题之一来解决此问题)。

于 2011-03-24T21:52:51.537 回答
2

已弃用:鉴于 Android 框架和设计指南的更改,此答案不再准确。


Android 手机保证有一个菜单按钮。Honeycomb 之前的所有手机都具有菜单按钮,并且 Honeycomb 具有始终存在的软件按钮。如果您使用与菜单按钮相关的正确回调(onCreateOptionsMenu()、onOptionsItemSelected() 等),您将可以安全地在任何运行 Android 的设备上接收这些回调。

于 2011-03-24T21:00:52.380 回答
0

从 API 级别 14 开始,ViewConfiguration.hasPermanentMenuKey()可用于指示是否存在永久菜单键。

于 2012-08-01T00:39:02.313 回答