【问题标题】:way to programatically determine whether an Android device has a menu button?以编程方式确定Android设备是否有菜单按钮的方法?
【发布时间】:2011-03-24 20:52:06
【问题描述】:

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

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

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

【问题讨论】:

    标签: android tablet


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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


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

      【讨论】:

      • 唷。没有菜单按钮的想法吓到我一秒钟!
      • 现在在 2012 年不保证菜单按钮!事实上,Android 4.0 ICS 和 Galaxy Nexus 建议开发不使用菜单按钮的应用程序。
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2012-02-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-08
        • 2011-05-31
        • 2015-12-19
        • 1970-01-01
        相关资源
        最近更新 更多