如何将工具栏上的动作菜单居中
我有一个应用程序,其中加载了一个动作菜单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);
}
}
在这种情况下,Chris Banes建议使用ActionMenuView而不是Toolbar(请参阅下面的链接,回复#6)。除此之外,在这个链接中,你可以找到一个解决方案,在这个解决方案中,分组工具栏为了分割工作正确。
https://code.google.com/p/android/issues/detail?id=77632#c2
希望它可以帮助你!
在线程的评论中使用详细的SplitToolbar做的窍门:https://gist.github.com/dodgex/7bc81fd2cbb70a8d5117 – grunk 2014-11-05 08:50:47
我也一直在试图找到一个回答这个问题在过去的几个星期。我发现的最接近的事物是利用了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>
您是否仍然可以在此解决方案中使用inflateMenu()和setOnMenuItemClickListener()? – grunk 2014-10-31 14:29:30
是的,没有。如果您使用的是溢出菜单,则仍然可以使用默认方法来处理其他菜单项,您需要通过XML设置布局并自己监听onClick事件。 – MrEngineer13 2014-10-31 14:57:39
没有理由使用工具栏然后,更好地创建一个自定义视图:( – grunk 2014-10-31 15:30:38
另请参见:http://stackoverflow.com/questions/34546160/how-to-enable-split-action-bar/34546493#34546493 – piotrek1543 2015-12-31 15:06:04