6

アクションメニューをロードする分割アクションバーを備えたアプリケーションがあります。

新しいツールバーのアクションバーを変更し、分割されたアクションバーをスタンドアロン モードで使用される別のツールバーに置き換えました。

Toolbar toolbarBottom = (Toolbar) findViewById(R.id.toolbarBottom);
toolbarBottom.inflateMenu(R.menu.ab_one_cam);

ドキュメントで指定されているように、アクション メニューはツールバーの右側に固定されています。 ここに画像の説明を入力

しかし、分割アクションバーのように、アイコンをツールバーの中央に配置したいと思います。 ここに画像の説明を入力

アクション メニューがツールバーの利用可能なすべてのスペースを占めるようにするにはどうすればよいですか?

ツールバーはこのメニュー専用で、他には何も追加されません。

答え

受け入れられた回答のリンクは、分割ツールバーにつながります。私のように非常に単純な必要がある場合は、このコードで十分です:

public class SplitToolbar extends Toolbar {

    public SplitToolbar(Context context) {
        super(context);
    }

    public SplitToolbar(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public SplitToolbar(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    public void addView(View child, ViewGroup.LayoutParams params) {
        if (child instanceof ActionMenuView) {
            params.width = LayoutParams.MATCH_PARENT;
        }
        super.addView(child, params);
    }
}

クレジット: https://gist.github.com/dodgex/7bc81fd2cbb70a8d5117

4

2 に答える 2

6

この場合、Chris Banes は Toolbar の代わりに ActionMenuView を使用することを推奨しています (以下のリンクを参照、返信 #6)。それに加えて、このリンクでは、分割が正しく機能するようにツールバーをサブクラス化したソリューションを見つけることができます。

https://code.google.com/p/android/issues/detail?id=77632#c2

それがあなたを助けることを願っています!

于 2014-11-04T19:42:14.840 に答える
1

私はまた、過去数週間、この質問に対する答えを見つけようとしてきました。そして、私が見つけた最も近いものは、これToolbarが単なる ViewGroup であるという事実を利用しています。あなたがする必要があるのは、均等に重み付けされたメニュー項目が追加されたmenu_itemsレイアウトを作成することだけです. これが理想的な解決策ではないことはわかっていますが、デフォルトのメニューを使用しているときに項目を広げる方法が見つかりませんでした.LinearLayout

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar_btm"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:minHeight="?attr/actionBarSize"
        android:background="@color/toolbar_bkgnd"
        android:layout_alignParentBottom="true"
        app:theme="@style/ThemeOverlay.AppCompat.ActionBar" >

        <include layout="@layout/menu_items"/>

        </android.support.v7.widget.Toolbar>
于 2014-10-31T13:55:43.387 に答える