5

常に表示されるとは限らないアプリケーション ワイド メニューがあります。特に私の問題は、ハードウェア メニュー ボタンのないデバイスのターゲット SDK バージョンを 16 に設定すると、表示されるはずの 3 つのドット (アクション バー?) が実際には表示されないことです。

次のマニフェスト エントリがあります

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="10" />

ハードウェア ボタンのない avd エミュレーターでは、アクション バー メニューに 3 つのドットが表示されます。

しかし、目標を16に設定すると

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" />

アクションバーが表示されない

さまざまなリソース フォルダー (values、values-v11、values-v14) にスタイルを設定しています。

特にvalues-v14には、styles.xmlファイルがあります

<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar" />

テーマを設定するマニフェスト エントリは次のとおりです。

<application android:label="@string/app_name"
android:name="uk.co.pjadult.mobile.adult_reader_lib.BookLib"
android:icon="@drawable/ic_launcher"
android:theme="@style/AppTheme">

すべての SDK バージョンのスタイルを使用してリソース フォルダーを設定する必要があるかどうか疑問に思っています。

Android:targetSdkVersion="16" を設定し、アクション バー (3 つのドット) メニューを表示できるようにするために、正しいアプローチがどうあるべきかについて途方に暮れています

更新私は今ActionBarSherlockを問題なく使用しています

4

1 に答える 1

5

この問題の詳細については、@Mr.S 提供のリンク、Android missing MENU buttonを参照してください。

しかし、あなたの質問に答えるには:

すべての SDK バージョンのスタイルを使用してリソース フォルダーを設定する必要があるかどうか疑問に思っています。

いいえ。利用可能な最高のAPI を使用します。たとえば、次の場合:

  • values.xml
  • values-v11.xml
  • values-v16.xml

次の Android OS API レベルの例では、次を使用します。

  • API 4:values.xml
  • API 10:values.xml
  • API 11:values-v11.xml
  • API 13:values-v11.xml
  • API 16:values-v16.xml

等々。

Android:targetSdkVersion="16" を設定し、アクション バー (3 つのドット) メニューを表示できるようにするために、正しいアプローチがどうあるべきかについて途方に暮れています

アクティビティが全画面表示の場合、API レベル (最小またはターゲット) が 10 を超えると、ドットが消えます。これを回避する唯一の方法は、独自のメニュー システムを作成するか、ActionBarSherlockなどの shim ライブラリを使用することです。

アクティビティに通常はタイトル バーがあるが、API レベルを 10 より上に設定したい場合はHolo.Theme、アクティビティの in コードを設定する必要があります。その方法については、このHolo Everywhereブログ投稿とAndroid テーマ、フルスクリーン、およびアクション バーを参照してください。

更新: 新しい Android ハードウェア ガイドラインでは、ハードウェア メニュー ボタンが必要ないことに注意してください。このハックは、ソフト ボタンを使用するデバイス (Nexus 7 など) でのみ機能します。どちらも提供しないデバイス (たとえば、多くの HTC デバイスなど) の場合、このハックを使用しても、ユーザーがメニューにアクセスする方法はありません。アクションバーのコンセプトに切り替えることを強くお勧めします。

于 2012-11-12T04:25:24.627 に答える