1

私は Android アプリケーション (sdk 8 から 15) を作成しており、メニューを扱っています。理解するために多くのことを読みましたが、1つの点で立ち往生しています:

どうやら SDK 10 以降、ハードウェア メニュー ボタンがサポートされていないため、アクション バーを使用する必要があります。Ok。しかし、私のアプリでは、この種のメニューが必要です:

ボトムメニュー

またはこれ:

もう一つの下のメニュー

...ハードウェア メニュー ボタンではなく、「ネイティブ アクション バー」のようです。私がウェブ上で見つけることができるのは、アプリのタイトルとロゴが左側にある上部のアクションバーだけです..これらは多くの場所を占めています. これらの SDK のすべてのバージョンに迷っており、上記のようなシンプルなメニューを統合したいだけですが、どうすればよいですか?

私は自分のコードにこれを持っていますが、:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_fragments_slider, menu);
    return true;
}

...しかし、最初または2番目の画像にあるはずのAndroid 4ではメニューが表示されません。

4

2 に答える 2

2

Android API ドキュメントの Menu Resource を確認してください。特に:

android:showAsAction=["ifRoom" | "決して" | "withText" | "常に" | "collapseActionView"]

ドキュメントのサンプル XML は、正確にレイアウトする方法についても優れたリソースです。

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/item1"
          android:title="@string/item1"
          android:icon="@drawable/group_item1_icon"
          android:showAsAction="ifRoom|withText"/>
    <group android:id="@+id/group">
        <item android:id="@+id/group_item1"
              android:onClick="onGroupItemClick"
              android:title="@string/group_item1"
              android:icon="@drawable/group_item1_icon" />
        <item android:id="@+id/group_item2"
              android:onClick="onGroupItemClick"
              android:title="@string/group_item2"
              android:icon="@drawable/group_item2_icon" />
    </group>
    <item android:id="@+id/submenu"
          android:title="@string/submenu_title"
          android:showAsAction="ifRoom|withText" >
        <menu>
            <item android:id="@+id/submenu_item1"
                  android:title="@string/submenu_item1" />
        </menu>
    </item> </menu>

次に、マニフェストに追加する必要があります。

android:uiOptions="splitActionBarWhenNarrow"

これにより、ボタンが下に移動し、アクションバーにタイトルが残ります。画面に収まりきらない場合は、小さな 3 つのドット | が表示されます。下のアクションバーの右側にあります。ただし、かなりの数のメニュー項目がない限り、または長いテキスト文字列 (私は思う...) を除いて、これはポートレート モードでのみ実際に機能します。

于 2012-11-30T16:20:58.980 に答える
1

ActionBarSherlock は、サポートされているすべてのプラットフォーム バージョンでメニューを ActionBar に配置します。それをライブラリ プロジェクトとして追加し、Sherlock メニューをインポートして SherlockActivity を拡張していることを確認します。

于 2012-11-30T16:11:08.783 に答える