アクションバーなしで、Honeycomb または ICS タブレットでオプションメニューを表示するにはどうすればよいですか?
いろいろ試してみたところ、アクション バーがなく、11 以上の場合、ハニカム デバイスにオプション メニューを表示する方法がないようですtargetsdkversion
。あなたのテーマがTheme.Holo.NoActionBar
. >=11の Honeycomb でオプション メニューを表示する唯一の方法targetsdkversion
は、アクション バーがあるテーマを使用し、それを で非表示にすることですonCreate
。Honeycomb で古いパネル メニューを表示する唯一の方法は、targetsdkversion
<=10 を使用することです。
要約すると、Honeycomb では、11 未満をターゲットにしない限り、アクション バーがない場合にオプション メニューを表示する方法はありません。これはバグのようです。ICS 以降では、実際にアクション バーがあるかどうかに関係なく、好きなオプション メニューを使用できます。
私の当初の目標は、古いスタイルのパネル メニューと新しいアクション バー メニューの両方を (さまざまなアクティビティで) Honeycomb 以上で使用できるようにすることでしたが、一方で、Honeycomb より下のあらゆる場所でパネル メニューを使用できるようにすることでした。
その理由は、大きなメニュー ボタンが必要なアクティビティが 1 つありますが、アプリの残りの部分は完全にホロ化できます。
これを達成するために、私Theme.Holo
はTheme.NoTitlebar
. 私は を持っているandroid:minSdkVersion="5" android:targetSdkVersion="14"
ので、サポート メニュー キーは表示されません (したがって、一部の新しい HTC 電話では画面スペースを無駄にしません)。デバイスにハードウェア メニュー ボタンがない場合は、パネル メニューをポップアップする独自のボタンを提供します ( http://developer.android.com/reference/android/view/ViewConfiguration.html#hasPermanentMenuKey () 経由) 。
問題は、これが Honeycomb タブレット (Galaxy Tab、Honeycomb 3.2) では機能しないことです。アクションバーを使用した通常のアクティビティは正常に機能しますが、特別なアクティビティでは、メニューボタン (UI で提供したもの) を押しても何も起こりません。
これは、少なくとも 2 台の ICS 電話とエミュレータ (ハードウェア メニュー キーの有無にかかわらず) で正常に動作します。大きなパネル メニューが表示されるこの 1 つのアクティビティを除いて、どこにでも通常のアクション バー メニューがあります。
それで、解決策は何ですか?これは Galaxy Tab の問題ですか、それとも Honeycomb の問題ですか? パネル メニューを提供するために使用すべき別のテーマはありますか?
編集:さらにテストするためにICSタブレットを入手しましたが、パネルメニューも表示されませんでした。そのため、同じバージョンの Android でまったく同じアプリを使用しても、スマートフォンではパネル メニューが表示され、タブレットでは何も表示されません。は?