2015-11-13 143 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」。並且可以創建一個可繪製文件來直觀地顯示點擊事件。