Android下強制顯示ActionBar的overflowbutton
阿新 • • 發佈:2017-07-30
print trac acc onf als 永遠 能夠 16px tac
因為手機硬件情況的不同,在沒有物理Menu鍵的手機上。ActionBar的overflowbutton會有顯示不出來的情況,能夠通過反射的方式改動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();
}
}
@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();
}
}
Android下強制顯示ActionBar的overflowbutton