2011-12-14 28 views
5

Tôi có ứng dụng hiện có với trình xem toàn màn hình sử dụng nút menu để hiển thị các tùy chọn. Tôi đã đặt android: targetSdkVersion thành 14 để có toàn bộ chủ đề ứng dụng trông giống như ứng dụng ICS gốc.Hiển thị nút menu trên ICS trong khi vẫn giữ android: targetSdkVersion thành 14

Vấn đề là khi đặt kiểu Hoạt động thành toàn màn hình, tôi không có nút menu và nếu tôi hiển thị ActionBar, sẽ mất quá nhiều không gian màn hình để hiển thị menu.

Có cách nào giữ nút menu thông thường trong khi ở chế độ toàn màn hình trên ICS không?

Trả lời

2

Tôi cho rằng không có cách nào để chỉ hiển thị một phần nhỏ thanh hành động của ICS - ít nhất nó sẽ trông lạ. Cách tốt nhất cho bạn là tạo ra một nơi nào đó trong ứng dụng của bạn "nút menu". Nếu bạn muốn ẩn nút này cho điện thoại có nút trình đơn phần cứng, bạn có thể chọn kiểm tra phiên bản SDK: android.os.Build.VERSION.SDK_INT

2

Có một cách, nếu bạn cảm thấy thoải mái với sự tin tưởng và phản ánh. Daniel Lew đề cập đến nó trong his blog. Ông lưu ý, một cách thích hợp, rằng điều này thực sự không có nghĩa là được sử dụng với mã sản xuất. Các nhà phát triển Android có thể lấy đi khả năng này trong tương lai.

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); 
    } 
} 
Các vấn đề liên quan