首页 > 解决方案 > 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 出现在右侧。但它们以相反的顺序出现:

截屏

我究竟做错了什么?我尝试了许多不同的属性,例如 android:layout_toRightOf,但我无法让它工作。

标签: android

解决方案


你必须使用

@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"以正确安排


推荐阅读