Android强制显示Overflow菜单

2015-12-22  本文已影响557人  Lollo

在一些有实体菜单键的手机上,Android Overflow菜单的图标可能会不显示。
这时候需要我们欺骗系统,把ViewConfiguration里面 "sHasPermanentMenuKey"的field设成false, 以达到强制显示的目的。

代码很简单,直接在继承了Application的类里添加。

 private void makeActionOverflowMenuShown() {
        //devices with hardware menu button (e.g. Samsung Note) don't show action overflow menu
        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) {
            Log.d(TAG, e.getLocalizedMessage());
        }
    }
上一篇下一篇

猜你喜欢

热点阅读