在一些有实体菜单键的手机上,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());
}
}