Android-工具栏-更改按钮顺序

时间:2018-11-30 10:15:48

标签: android

我正在尝试创建一个工具栏,该工具栏的后箭头和标题左对齐,两个按钮右对齐。这两个按钮没有按我想要的顺序显示。

这是布局:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <android.support.v7.widget.Toolbar
        android:id="@+id/my_child_toolbar"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:background="?attr/colorPrimary"
        android:elevation="4dp"
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="16dp"
            android:background="#aa492f"
            android:onClick="onClickExit"
            android:src="@drawable/ic_arrow_back_white_24dp"/>
        <TextView
            android:id="@+id/textView1"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_gravity="left|top"/>
        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:layout_marginRight="16dp"
            android:background="#aa492f"
            android:onClick="onClickCashIn"
            android:src="@drawable/ic_payment_white_24dp"/>
        <ImageButton
            android:id="@+id/imageButton1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:layout_marginRight="16dp"
            android:background="#aa492f"
            android:onClick="onClickPay"
            android:src="@drawable/ic_send_white_24dp"/>

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

    <GridLayout .../>

</LinearLayout>

我希望按钮ic_payment_white_24dp出现在左侧,而按钮ic_send_white_24dp出现在右侧。但是它们以相反的顺序出现:

screenshot

我在做什么错?我尝试尝试许多不同的属性,例如android:layout_toRightOf,但我无法正常工作。

2 个答案:

答案 0 :(得分:0)

您必须使用

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main_menu, menu);
    return true;
}

增加工具栏和Xml的菜单应该是这样

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto">
<item
    android:id="@+id/place_picker"
    android:icon="@drawable/ic_map"
    android:orderInCategory="2"
    android:title="Search"
    app:showAsAction="ifRoom" />

<item
    android:id="@+id/random_place"
    android:icon="@mipmap/ic_shuffle"
    android:title="Pick a Random place"
    app:showAsAction="ifRoom" />

</menu>

并重新排列项目,您必须调整android:orderInCategory="2"才能正确排列

答案 1 :(得分:-1)

为此xml设计toolbar

<?xml version="1.0" encoding="utf-8"?>
  <android.support.v7.widget.Toolbar 
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:background="?attr/colorPrimary"
  android:minHeight="?attr/actionBarSize">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:weightSum="1.45">

            <LinearLayout
                android:id="@+id/layout_toolBar"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_weight="0.15"
                android:gravity="center">

                <android.support.v7.widget.AppCompatImageView
                    android:id="@+id/img_toolbar"
                    android:layout_width="20dp"
                    android:layout_height="20dp"
                    android:src="@mipmap/back_arrow" />
            </LinearLayout>

            <TextView
                android:id="@+id/toolBarText"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_weight="0.99"
                android:text="@string/app_name"
                android:textColor="@android:color/white"
                android:textStyle="bold" />

            <LinearLayout
                android:id="@+id/notification_toolbar"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:gravity="center|right"
                android:layout_weight="0.30">

                <android.support.v7.widget.AppCompatImageView
                    android:id="@+id/notifcation_imageView"
                    android:layout_width="25dp"
                    android:layout_height="25dp"
                    android:layout_gravity="right"
                    android:src="@drawable/payment"
                    android:tint="@android:color/white" />

                <android.support.v7.widget.AppCompatImageView
                    android:id="@+id/logout_toolbar"
                    android:layout_width="25dp"
                    android:layout_height="25dp"
                    android:layout_marginLeft="10dp"
                    android:tint="@android:color/white" 
                    android:src="@drawable/send"/>
            </LinearLayout>

        </LinearLayout>