【问题标题】:How to always show Android settings button on ActionBar?如何始终在 ActionBar 上显示 Android 设置按钮?
【发布时间】:2013-12-06 09:30:47
【问题描述】:

如何始终在 ActionBar 上显示 Android 设置按钮? (4.0+)

即使设备有用于设置的硬件按钮,我也想显示它,因此无论有无硬件按钮的设备都是一样的。

这就是我要说的:http://oi48.tinypic.com/2j104l0.jpg

【问题讨论】:

  • 你的意思是溢出菜单项吗?
  • 是的,我认为它是这样称呼的。

标签: android android-actionbar


【解决方案1】:

有一个可怕的 hack 通常已在许多问题上得到解答。打电话给from your onCreate()

private void getOverflowMenu() {

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

强烈建议不要使用此 hack,因为sHasPermanentMenuKey 字段可以随时更改。但是,到目前为止,这一直对我和其他人有用。见

Android action bar not showing overflow

另一方面,手机上出现硬件按钮是有原因的。仅显示添加溢出菜单可能会使您的用户感到困惑。理想情况下,用户会非常习惯于使用他/她的个人电话。因此,如果用户的手机有溢出菜单选项的硬件按钮,那么它不需要在操作栏顶部有图标。由于不同应用程序的行为差异,添加按钮可能会使用户感到困惑。

希望对您有所帮助。

编辑:

简而言之,不建议使用,因为Android代码中的sHasPermanentMenuKey字段可以随时更改,如果找不到会破坏您的应用程序。

【讨论】:

猜你喜欢
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-21
  • 1970-01-01
  • 2014-05-01
  • 1970-01-01
相关资源
最近更新 更多