由于手机硬件情况的不同,在没有物理Menu键的手机上,ActionBar的overflow按钮会有显示不出来的情况,可以通过反射的方式修改ViewConfiguration类中的sHasPermanentMenuKey静态变量的值永远为false,系统就是根据这个变量值来判断手机有没有物理Menu键,代码如下:
@Override
protected void onCreate(Bundle savedInstanceState) {
……
setOverflowShowingAlways();
}
private void setOverflowShowingAlways() {
try {
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class.getDeclaredField(“sHasPermanentMenuKey”);
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
} catch (Exception e) {
e.printStackTrace();
}
}
时间: 2024-10-09 02:29:36