4

分割メニュー (sherlock を使用するかどうかに関係なく) を作成しようとしていますが、まだ成功しませんでした。

public class MainActivity extends SherlockFragmentActivity  {
ActionBarSherlock mSherlock = ActionBarSherlock.wrap(this);
...............
    mSherlock.setUiOptions(ActivityInfo.UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW);
    mSherlock.setContentView(R.layout.activity_main);
...............
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    //Used to put dark icons on light action bar
    boolean isLight = false;

    menu.add("You")
        .setTitle("You")
        .setIcon(isLight ? R.drawable.icon_you : R.drawable.icon_you)
        .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);

    menu.add("Pet Open")
        .setIcon(isLight ? R.drawable.icon_pet_open : R.drawable.icon_pet_open)
        .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);

    menu.add("Around")
        .setIcon(isLight ? R.drawable.icon_around : R.drawable.icon_around)
        .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);

    return true;
}

その結果、タイトルのないデフォルトの背景を持つ 3 つの小さなアイコンが表示されますが、これを変更する方法がわかりません。そして、ここに私が取得したいものがあります:

分割メニューの下部

トップ メニューに影響を与えずにカスタム ボトム メニューを追加するにはどうすればよいですか?

ここに私が見つけたものがあります:

マニフェストから分割メニューを実装します(これにより、必要なものを変更する機会が得られるとは思いません)

レイアウト パラメータの使用- 正しく動作していないようです。


このメニューを実装する最良の方法は何ですか?


ここでの更新 は、私が見つけたもう1つの方法です。 良い点は、変更方法を確認できることですが、悪い点は、上部と下部で同じ背景を使用していることです。変更できるかどうかわかりません。 ここに画像の説明を入力

4

1 に答える 1

1

2 つのオプション:

1)マニフェストに(または上記のようにプログラムで)フラグを設定して、を分割するActionBarことができますが、これは縦向きの電話サイズのデバイスを使用している場合にのみ機能し、それでもまだActionBar上に存在しますが、最初の数ActionItem秒を一番下に移動します。それはほとんどの状況で問題ありませんが、常にこのボトムを表示したいと言っているように聞こえますが、使用するシステムメニューには、必要な程度にスタイルを設定する機能がありません.

2) 画面の下部に独自のレイアウトを作成して、話しているスタイルのメニューを作成します。これはうまくいくかもしれません:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:orientation="vertical" >

    <!-- this is where the Activity contents go -->
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="40dp"
    android:layout_alignParentBottom="true"
    android:background="#8f8"
    android:orientation="horizontal" >

    <!-- this is the green bottom bar -->
</LinearLayout>

<LinearLayout
    android:layout_width="48dp"
    android:layout_height="70dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentleft="true"
    android:layout_margin="5dp"
    android:orientation="vertical" >

    <!-- This is the status button -->

    <ImageView
        android:layout_width="48dp"
        android:layout_height="40dp"
        android:background="#00f" />

    <TextView
        android:layout_width="48dp"
        android:layout_height="wrap_content"
        android:padding="4dp"
        android:text="Status"
        android:textAlignment="center"
        android:textSize="12sp" />
</LinearLayout>

<LinearLayout
    android:layout_width="60dp"
    android:layout_height="70dp"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_margin="5dp"
    android:orientation="vertical" >

     <!-- This is the Pet Open button -->


    <ImageView
        android:layout_width="60dp"
        android:layout_height="40dp"
        android:background="#00f" />

    <TextView
        android:layout_width="60dp"
        android:layout_height="wrap_content"
        android:padding="4dp"
        android:text="Pet Open"
        android:textAlignment="center"
        android:textSize="12sp" />
</LinearLayout>

<LinearLayout
    android:layout_width="60dp"
    android:layout_height="70dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_margin="5dp"
    android:orientation="vertical" >


     <!-- This is the Refresh button -->

    <ImageView
        android:layout_width="60dp"
        android:layout_height="40dp"
        android:background="#00f" />

    <TextView
        android:layout_width="60dp"
        android:layout_height="wrap_content"
        android:padding="4dp"
        android:text="Refresh"
        android:textAlignment="center"
        android:textSize="12sp" />
</LinearLayout>

</RelativeLayout>

これは 3 つのボタンで機能し、必要に応じてスタイルを設定するための一連の調整が行われます。下部に 3 つ以上表示する必要があり、提供された を使用したい場合は、MenuItemこれらすべてを実行時に で決定しonPrepareOptionsMenu()、上のレイアウトのバージョンを動的に変更できます。それはより多くの作業になりますが、あなたが探しているもの以上かもしれません.

于 2013-10-02T19:36:06.990 に答える