5

メニューボタンを使用してオプションを表示するフルスクリーンビューアを備えた既存のアプリがあります。アプリのテーマ全体がネイティブのICSアプリのように見えるように、android:targetSdkVersionを14に設定しました。

問題は、アクティビティスタイルを全画面に設定するときに、メニューボタンがないことです。また、アクションバーを表示すると、メニューを表示するためだけにアプリの画面スペースが大きくなりすぎます。

ICSで全画面表示中に通常のメニューボタンを維持する方法はありますか?

4

2 に答える 2

2

ICS のアクション バーのごく一部だけを表示する方法はないと思います。少なくとも、奇妙に見えるでしょう。あなたにとって最善の方法は、アプリのどこかに「メニューボタン」を作成することです。ハードウェア メニュー ボタンを備えた電話でこのボタンを非表示にする場合は、SDK バージョンを確認するオプションがあります。 android.os.Build.VERSION.SDK_INT

于 2011-12-14T13:01:01.003 に答える
2

ハッキングとリフレクションに慣れている場合は、方法があります。Daniel Lewが彼のブログで言及しています。彼は、これは実稼働コードで使用することを意図したものではないことを適切に指摘しています。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);
  }
}
于 2012-09-01T04:37:27.387 に答える