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 建议使用 ActionMenuView 而不是 Toolbar(请参阅下面的链接,回复 #6)。除此之外,在此链接中,您可以找到一个解决方案,该人将 Toolbar 子类化以便拆分工作正常。

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 回答