在Android中,有時候沒有硬件Menu。於是需要軟件Menu。但是默認Google想讓你用ActionBar上的Menu。
但是,有時候我們確實需要在在底部的軟按鍵上加Menu。這裏提供一種方法,經過測試,可行。
這裏,設置Window的屬性,要求添加Menu鍵。
爲什麼用反射,是因爲這個是隱藏的屬性。並且,在低版本上,這個屬性是不存在的。
另外,軟按鍵的顯示,是在SystemUI裏面控制的,這裏沒有詳細分析,有時間可以分析一下。
t ry {
getWindow().addFlags(WindowManager.LayoutParams.class.getField("FLAG_NEEDS_MENU_KEY").getInt(null));}
catch (NoSuchFieldException e) {
// Ignore since this field won't exist in most versions of Android
LogMi.w(TAG, "cant find field FLAG_NEEDS_MENU_KEY at WindowManager.LayoutParams");
}
catch (IllegalAccessException e) {
Log.w(TAG, "Could not access FLAG_NEEDS_MENU_KEY in addLegacyOverflowButton()", e);
}