如何在ActionBar上始终显示Android设置按钮?

时间:2013-08-08 19:41:39

标签: android android-actionbar

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

即使设备有一个用于设置的硬件按钮,我也希望显示它,因此对于带有和不带硬件按钮的设备都是一样的。

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

1 个答案:

答案 0 :(得分:6)

有一个糟糕的黑客通常在许多问题上得到了解答。请拨打此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字段随时更改,如果找不到则会破坏您的应用。