我有一个带有split action bar加载操作菜单的应用程序。
我更改了新工具栏的操作栏,并用独立模式中使用的其他工具栏替换了拆分操作栏:
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);
}
}
答案 0 :(得分:6)
在这种情况下,Chris Banes建议使用ActionMenuView而不是Toolbar(请参阅下面的链接,回复#6)。除此之外,在这个链接中,你可以找到一个解决方案,其中人员子类化工具栏,以便拆分正常工作。
https://code.google.com/p/android/issues/detail?id=77632#c2
希望它可以帮到你!
答案 1 :(得分:1)
过去几周我一直试图找到这个问题的答案。我发现的最接近的事情利用了Toolbar
只是一个ViewGroup这一事实。您需要做的就是创建menu_items
布局,该布局只是LinearLayout
,并且添加了相同的加权menu items。我知道这不是一个理想的解决方案,但我还是没有找到使用默认菜单时展开的项目。
<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>