【问题标题】:Android ICS : How to detect that a device have "on screen Back/Home button" (Like Galaxy Nexus)Android ICS:如何检测设备是否有“屏幕上的返回/主页按钮”(如 Galaxy Nexus)
【发布时间】:2023-03-16 16:07:02
【问题描述】:

我想知道是否有办法检测设备是否有“屏幕按钮”(如 Galaxy Nexus 或 ICS 平板电脑)

我的问题是在带有屏幕按钮的设备中,在操作上,添加了溢出按钮(如果溢出),而不是在其他设备上,所以我希望能够预测这种行为。

感谢您的帮助。

【问题讨论】:

  • 你为什么要关心,只要用户有权访问溢出?
  • CommonsWare 是对的,为什么你觉得有必要预测这种行为?
  • 蜂巢平板电脑也有“屏幕按钮”
  • “需要保持一致性”——这就是为什么你需要不理会事情。您的绝大多数用户没有同时具有硬件 MENU 按钮的 Android 设备和没有硬件 MENU 按钮的 Android 设备。他们并不关心其他类型设备的行为方式——他们希望他们的应用程序的行为像他们所有其他应用程序一样。您就像那些认为他们的 Android 应用程序必须看起来与他们的 iOS 应用程序相同的人一样,没有意识到很少有人将两者并排比较,并因此使用搞砸的 Android 导航。
  • 溢出不会显示在带有硬菜单键的设备上,因为这些设备已经具有显示溢出的已知机制 - 菜单键。您的目标不应是为不同设备上的所有应用用户提供像素级的完美一致性,而应旨在与相同设备上的其他应用保持一致。 Android 设备有许多硬件变化:屏幕大小、对硬键盘/软键盘的依赖等。为了与手机用户保持一致,您不希望平板电脑用户使用专为手机设计的 UI,而不是希望溢出按钮 + 硬菜单键。

标签: android menu android-4.0-ice-cream-sandwich


【解决方案1】:

从您的活动中,您可以运行以下命令:

boolean hasNavigationBar = false;

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH)
{
    hasNavigationBar = !ViewConfiguration.get(context).hasPermanentMenuKey();
}    
else 
{
    hasNavigationBar = false;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-16
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多