Android 工具栏、中心文本布局问题

Android Toolbar, center text layout issue

目前正在努力调整我的工具栏的布局。
我有两个按钮。一个左对齐,另一个右对齐。文本(应用程序标题)需要位于两个按钮的中央。

示例: [按钮 1] [文本] [按钮 2]

我的问题。文本未居中对齐。

它需要看起来像这样。

不确定我做错了什么。挣扎了几个小时。

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".OcdListActivity">

<ImageView
    android:id="@+id/imageViewplaces"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true"
    android:background="@drawable/bg_toolbar" />

    <android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@drawable/background_toolbar_translucent">

    <ImageButton
        android:layout_width="52dp"
        android:layout_height="52dp"
        android:id="@+id/btnBack"
        android:background="@null"
        android:src="@drawable/ic_keyboard_backspace_black_24dp"
        android:layout_gravity="left"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:onClick="doBackButton_click"
        android:tint="@color/colorBtnWhite" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="My list"
            android:textColor="@color/colorBtnWhite"
            android:gravity="center"
            android:id="@+id/toolbar_title" />

        <ImageButton
            android:layout_width="52dp"
            android:layout_height="52dp"
            android:id="@+id/btnMenu"
            android:background="@null"
            android:src="@drawable/ic_reorder_black_24dp"
            android:onClick="doMenuButton_click"
            android:layout_gravity="right"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:tint="@color/colorBtnWhite" />

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

<include layout="@layout/content_ocdlist" />

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:layout_margin="@dimen/fab_margin"
    android:tint="@android:color/white"
    app:backgroundTint="@color/colorPrimaryDark"
    android:src="@android:drawable/ic_input_add" />

提前致谢

我不太熟悉 Toolbar 是如何布置其子视图的,它只是 ViewGroup 的一个子类,但我通常会尽可能使用 RelativeLayout。我知道当你使用很多(尤其是嵌套)时它会出现一些性能问题,但在这种情况下应该没问题。

类似这样的东西应该可以实现您正在寻找的东西:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@drawable/background_toolbar_translucent">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ImageButton
            android:layout_width="52dp"
            android:layout_height="52dp"
            android:id="@+id/btnBack"
            android:background="@null"
            android:src="@drawable/ic_keyboard_backspace_black_24dp"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:onClick="doBackButton_click"
            android:tint="@color/colorBtnWhite" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="My list"
            android:textColor="@color/colorBtnWhite"
            android:gravity="center"
            android:layout_centerInParent="true"
            android:id="@+id/toolbar_title" />

        <ImageButton
            android:layout_width="52dp"
            android:layout_height="52dp"
            android:id="@+id/btnMenu"
            android:background="@null"
            android:src="@drawable/ic_reorder_black_24dp"
            android:onClick="doMenuButton_click"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:tint="@color/colorBtnWhite" />


    </RelativeLayout>

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

只需在您的 activity(视图)中执行此操作:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setContentInsetsAbsolute(0, 0); // remove toolbar margin from left/right

TextView你必须改变

android:gravity="center"

android:layout_gravity="center"