Android 如何在support actionbar中添加backbutton时将工具栏中央的textview对齐

Android 如何在support actionbar中添加backbutton时将工具栏中央的textview对齐,android,android-layout,android-actionbar,Android,Android Layout,Android Actionbar,我已经创建了自定义工具栏作为活动的操作栏。我希望标题标签显示在工具栏的中心 工具栏布局资源文件为 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_

我已经创建了自定义工具栏作为活动的操作栏。我希望标题标签显示在工具栏的中心

工具栏布局资源文件为

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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="match_parent"
android:orientation="vertical">

<android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/my_toolbar_select"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    android:weightSum="1">

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

        <ImageView
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:layout_marginRight="15dp"
            android:layout_marginTop="20dp"
            android:src="@drawable/ic_menu_camera" />

            <TextView
                android:id="@+id/text1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:singleLine="true"
                android:text="sample text"
                android:textColor="@color/progressWhite"
                android:textSize="14sp" />

            <TextView
                android:id="@+id/text2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:singleLine="true"
                android:text="Heading"
                android:layout_gravity="center"
                android:textColor="@color/progressWhite"
                android:textSize="18sp"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/text3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center|center_horizontal"
                android:singleLine="true"
                android:text="second line heading"
                android:textColor="@color/progressWhite"
                android:textSize="12sp"
                android:layout_marginBottom="15dp"/>


    </LinearLayout>


</android.support.v7.widget.Toolbar>
我想将工具栏中央的所有三个
TextView
对齐,但无法在工具栏的正中央对齐。当我在设备中运行应用程序时,它没有正确对齐。如何解决此问题?

来自文档:

一个或多个自定义视图。应用程序可以向工具栏添加任意子视图。它们将出现在布局中的此位置。如果子视图的Toolbar.LayoutParams指示重心值为水平,则在测量完所有其他元素后,视图将尝试在工具栏中剩余的可用空间内居中

因此,您希望在工具栏中的视图(在本例中为LinearLayout)上水平居中。您可以使其
包装内容
,这样它将在工具栏中居中,只占用所需的空间。然后将其
重力设置为
水平居中
,使其内容居中。然后,您可以删除所有子项上的所有
重力
属性,因为它们现在基于
LinearLayout
对齐。我调整了你的样本:

<android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto"
  android:id="@+id/my_toolbar_select"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:background="?attr/colorPrimary"
  app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    <LinearLayout
      android:gravity="center_horizontal"
      android:layout_gravity="center_horizontal"
      android:layout_width="wrap_content"
      android:layout_height="match_parent"
      android:orientation="vertical">

        <ImageView
          android:id="@+id/button1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:src="@drawable/cmn_add" />

        <TextView
          android:id="@+id/text1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:singleLine="true"
          android:text="sample text"
          android:textColor="@color/white"
          android:textSize="14sp" />

        <TextView
          android:id="@+id/text2"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:singleLine="true"
          android:text="Heading"
          android:textColor="@color/white"
          android:textSize="18sp"
          android:textStyle="bold" />

        <TextView
          android:id="@+id/text3"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:singleLine="true"
          android:text="second line heading"
          android:textColor="@color/white"
          android:textSize="12sp"
          android:layout_marginBottom="15dp"/>

    </LinearLayout>

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

希望有帮助

另外,当发布关于布局不正确的问题时,发布一个你得到的布局截图和一个模拟或你真正想要的东西是非常有用的。否则人们只能根据你的描述猜测

<android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto"
  android:id="@+id/my_toolbar_select"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:background="?attr/colorPrimary"
  app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    <LinearLayout
      android:gravity="center_horizontal"
      android:layout_gravity="center_horizontal"
      android:layout_width="wrap_content"
      android:layout_height="match_parent"
      android:orientation="vertical">

        <ImageView
          android:id="@+id/button1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:src="@drawable/cmn_add" />

        <TextView
          android:id="@+id/text1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:singleLine="true"
          android:text="sample text"
          android:textColor="@color/white"
          android:textSize="14sp" />

        <TextView
          android:id="@+id/text2"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:singleLine="true"
          android:text="Heading"
          android:textColor="@color/white"
          android:textSize="18sp"
          android:textStyle="bold" />

        <TextView
          android:id="@+id/text3"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:singleLine="true"
          android:text="second line heading"
          android:textColor="@color/white"
          android:textSize="12sp"
          android:layout_marginBottom="15dp"/>

    </LinearLayout>

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