2011-12-14 18 views
5

我有一個使用菜單按鈕顯示選項的全屏查看器的現有應用程序。 我已將android:targetSdkVersion設置爲14,以使整個應用主題看起來像本機ICS APP。顯示ICS上的菜單按鈕,同時保持android:targetSdkVersion爲14

問題是,當將活動樣式設置爲全屏時,我沒有菜單按鈕,並且如果我顯示ActionBar,則需要應用太多的屏幕空間才能顯示菜單。

在ICS上全屏顯示時是否有任何方法保持常規菜單按鈕?

回答

2

我想沒有辦法只顯示ICS的一小部分操作欄 - 至少它看起來很奇怪。最適合你的方式是在應用程序的「菜單按鈕」中創建。如果你想隱藏硬件菜單按鈕的手機按鈕,可以選擇檢查SDK版本: android.os.Build.VERSION.SDK_INT

2

有一種方法,如果你喜歡hackiness和反射。 Daniel Lewhis 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); 
    } 
} 
相關問題