1

アクションバーなしで、Honeycomb または ICS タブレットでオプションメニューを表示するにはどうすればよいですか?

いろいろ試してみたところ、アクション バーがなく、11 以上の場合、ハニカム デバイスにオプション メニューを表示する方法がないようですtargetsdkversion。あなたのテーマがTheme.Holo.NoActionBar. >=11の Honeycomb でオプション メニューを表示する唯一の方法targetsdkversionは、アクション バーがあるテーマを使用し、それを で非表示にすることですonCreate。Honeycomb で古いパネル メニューを表示する唯一の方法は、targetsdkversion<=10 を使用することです。

要約すると、Honeycomb では、11 未満をターゲットにしない限り、アクション バーがない場合にオプション メニューを表示する方法はありません。これはバグのようです。ICS 以降では、実際にアクション バーがあるかどうかに関係なく、好きなオプション メニューを使用できます。

私の当初の目標は、古いスタイルのパネル メニューと新しいアクション バー メニューの両方を (さまざまなアクティビティで) Honeycomb 以上で使用できるようにすることでしたが、一方で、Honeycomb より下のあらゆる場所でパネル メニューを使用できるようにすることでした。

その理由は、大きなメニュー ボタンが必要なアクティビティが 1 つありますが、アプリの残りの部分は完全にホロ化できます。

これを達成するために、私Theme.HoloTheme.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 でまったく同じアプリを使用しても、スマートフォンではパネル メニューが表示され、タブレットでは何も表示されません。は?

4

1 に答える 1