【问题标题】:How To Control use of OverFlow Menu in ICS如何控制 ICS 中溢出菜单的使用
【发布时间】:2015-03-18 23:03:32
【问题描述】:

我想控制 ICS 中溢出菜单的使用。我还在我的 onCreateView() 中尝试了这段代码,并参考了这个link

     try {
            ViewConfiguration config = ViewConfiguration.get(this);
            Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
            if(menuKeyField != null) {
                menuKeyField.setAccessible(true);
                menuKeyField.setBoolean(config, false);
            }
        } catch (Exception ex) {
            // Ignore
        }

请帮助我在哪里出错以及如何使用它。

【问题讨论】:

  • 使用 ActionBarSherlock?
  • 你的意思是使用 ActionBarSherlock 是可能的?
  • 好吧,我正在使用 ActionBarSherlock,并且我已经启用了跨平台的溢出菜单。但我在问你是否正在使用它。
  • 如果你想尝试一下,我可以为 ABS 发帖。
  • 请参考这里更详尽的解释:stackoverflow.com/a/13568024/898457

标签: android


【解决方案1】:

我错了

在您的应用中包含此代码是错误的。

如何使用它

你不应该使用它。请让溢出菜单正常运行。

首先,您的代码可能无法在所有设备和 Android 版本上运行。

更重要的是,您正在做的是告诉您的用户您认为您比他们更重要。

根据操作系统版本和硬件,每个设备都有其触发菜单的方式:操作栏中的... 功能或设备的 MENU 按钮。用户希望他们设备上的应用程序之间保持一致。对于设备具有 MENU 按钮的用户,他们希望在所有应用程序中使用 MENU 按钮来调出可用的菜单。您试图通过破坏他们的 MENU 按钮来伤害这些用户。请不要这样做。请允许您的应用以与这些用户设备上的其他应用相同的方式运行,其中 MENU 按钮会显示溢出菜单。


更新

从 Android 4.4 开始,无论设备是否有 MENU 按钮,操作栏中都会出现溢出 ... I have blogged a bit more about this.

【讨论】:

  • @Rishabh.CreatioSoft:HOME 按钮与溢出菜单无关。
  • 你并不完全正确。当创建一个用户每天大约使用 8-12 小时的商业应用程序时,强迫用户点击愚蠢的菜单按钮是不好的。菜单按钮很糟糕,这就是他们删除的原因。即使是旧设备所有者也很少使用它或猜测它可能在那里。我不得不在网上搜索,因为不清楚还有更多操作!您必须告诉每个用户“嘿,伙计,有按菜单按钮不可见的操作”。否则溢出是可见的,并清楚地告诉您那里有东西。
  • @Parhs:“强迫用户点击愚蠢的菜单按钮是不好的”——然后不要使用选项菜单和操作栏。如果您认为自己可以做得更好,请提出您自己的 UI。另一方面,白痴所做的是通过使用反射来处理 Android 框架中的私有数据来创建脆弱的应用程序。该技术不适用于所有版本的 Android 或所有设备(设备制造商可以更改私有实现细节)。
  • @CommonsWare 这篇文章解释了stackoverflow.com/a/13341458/294022 的问题。你的回答无关紧要,不要从我的句子中分离出一个短语。您可能是专家且经验丰富,但菜单按钮 + 操作栏完全不直观。让 actionbarsherlock 表现得那样的唯一原因是官方是这样做的。
  • @Parhs +1。 MENU 按钮完全不直观。当用户在应用程序中看到带有动作的 ActionBar 时,虽然“也许存在一些隐藏的动作?为什么我不按 MENU 按钮?”是他们最不想想到的事情。有一个解决方案可以通过使用子菜单stackoverflow.com/a/12777000/898457 来模拟溢出按钮。虽然它很丑,但不涉及使用反射......
猜你喜欢
  • 2012-11-29
  • 1970-01-01
  • 2021-10-06
  • 1970-01-01
  • 2012-03-06
  • 2013-01-10
  • 2012-02-04
  • 1970-01-01
相关资源
最近更新 更多