我有一個使用菜單按鈕顯示選項的全屏查看器的現有應用程序。 我已將android:targetSdkVersion設置爲14,以使整個應用主題看起來像本機ICS APP。顯示ICS上的菜單按鈕,同時保持android:targetSdkVersion爲14
問題是,當將活動樣式設置爲全屏時,我沒有菜單按鈕,並且如果我顯示ActionBar,則需要應用太多的屏幕空間才能顯示菜單。
在ICS上全屏顯示時是否有任何方法保持常規菜單按鈕?
我有一個使用菜單按鈕顯示選項的全屏查看器的現有應用程序。 我已將android:targetSdkVersion設置爲14,以使整個應用主題看起來像本機ICS APP。顯示ICS上的菜單按鈕,同時保持android:targetSdkVersion爲14
問題是,當將活動樣式設置爲全屏時,我沒有菜單按鈕,並且如果我顯示ActionBar,則需要應用太多的屏幕空間才能顯示菜單。
在ICS上全屏顯示時是否有任何方法保持常規菜單按鈕?
我想沒有辦法只顯示ICS的一小部分操作欄 - 至少它看起來很奇怪。最適合你的方式是在應用程序的「菜單按鈕」中創建。如果你想隱藏硬件菜單按鈕的手機按鈕,可以選擇檢查SDK版本: android.os.Build.VERSION.SDK_INT
有一種方法,如果你喜歡hackiness和反射。 Daniel Lew在his blog中提到它。他恰當地指出,這實際上並不意味着與生產代碼一起使用。 Android開發者可能會在未來取消這種能力。
public static void addLegacyOverflowButton(Window window) {
if (window.peekDecorView() == null) {
throw new RuntimeException("Must call addLegacyOverflowButton() after setContentView()");
}
try {
window.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
}
catch (IllegalAccessException e) {
Log.w(TAG, "Could not access FLAG_NEEDS_MENU_KEY in addLegacyOverflowButton()", e);
}
}