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

Bad*_*ari 2 android android-actionbar

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

即使设备具有用于设置的硬件按钮,我也想展示它,因此对于具有和不具有硬件按钮的设备,它将是相同的.

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

Sho*_*uri 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();
    }
}
Run Code Online (Sandbox Code Playgroud)

强烈建议不要使用此hack,因为sHasPermanentMenuKey字段可以随时更改.然而,这一直在为我和其他人提供帮助.看到

Android操作栏没有显示溢出

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

希望有所帮助.

编辑:

简而言之,它不推荐作为sHasPermanentMenuKeyAndroid代码中的字段可以随时更改,如果找不到,将破坏您的应用程序.