2015-11-13 149 views
2

我有两个工具栏(顶部和底部),如图所示:的Android,在工具栏的布局位置菜单项

Toolbars

两个工具栏在自己的XML文件中定义的,没有什么特别的:

top_toolbar.xlm

<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/ColorPrimary" 
    android:elevation="4dp" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark"> 

</android.support.v7.widget.Toolbar> 

bottom_toolbar.xlm

<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/ColorBottomTrans" 
    android:elevation="4dp" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark"> 

</android.support.v7.widget.Toolbar> 

,并加入到主要活动:

activity_main.xlm

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/relLayout" 
    android:background="@android:color/white"> 

    <include 
     android:id="@+id/tool_bar" 
     layout="@layout/tool_bar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true"></include> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Hello World" 
     android:layout_below="@+id/tool_bar" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_margin="20dp" /> 

    <include 
     android:id="@+id/tool_bar_bottom" 
     layout="@layout/tool_bar_bottom" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true"></include> 

</RelativeLayout> 

其中每个工具栏上的项目是从菜单文件膨胀。

MainActivity

private void initToolbars() { 
    topToolbar = (Toolbar) findViewById(R.id.tool_bar); 
    bottomToolbar = (Toolbar) findViewById(R.id.tool_bar_bottom); 

    setSupportActionBar(topToolbar); 

    bottomToolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { 
     @Override 
     public boolean onMenuItemClick(MenuItem item) { 
      switch (item.getItemId()) { 
       case R.id.action_item_1: 
        break; 
      } 
      return true; 
     } 
    }); 
    bottomToolbar.inflateMenu(R.menu.menu_main); 
    bottomToolbar.getBackground().setAlpha(125); 
} 

但是我希望做的是移动 “项目1” 底部工具栏左侧,如图所示:

Split toolbar items

有一种方法来做到这一点?

在此先感谢。

回答

1

我想出了是最简单的解决方案来改变底部工具栏布局:

bottom_toolbar.xml

<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/ColorBottomTrans" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark"> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/lin" 
     android:orientation="horizontal" 
     android:layout_gravity="left" 
     android:gravity="center_vertical"> 

     <ImageView 
      android:layout_width="25dp" 
      android:layout_height="25dp" 
      android:src="@mipmap/ic_launcher" 
      /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="ITEM 1" 
      android:textStyle="bold" 
      android:textSize="12dp" 
      android:id="@+id/toolbar_title" 
      android:layout_marginLeft="10dp" 
      android:textColor="@android:color/white" /> 
    </LinearLayout> 

</android.support.v7.widget.Toolbar> 

,然后当我初始化工具栏,添加:

LinearLayout linearLayout = (LinearLayout) bottomToolbar.findViewById(R.id.lin); 
linearLayout.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     ... do stuff ... 
    } 
}); 

Left-side button

只需要记住从bottom_toolbar_menu.xml中删除“项目1”。并且可以创建一个可绘制文件来直观地显示点击事件。