Android 如何在包含宽度为“0dp”的视图的ConstraintLayout中居中放置打包链?

Android 如何在包含宽度为“0dp”的视图的ConstraintLayout中居中放置打包链?,android,android-constraintlayout,constraint-layout-chains,Android,Android Constraintlayout,Constraint Layout Chains,我想把我的页面标题放在中间。标题可以看起来像1个Dokument1或3个大文档。我希望左右边距为60dp,并且文档名称的长度可变。当我为@+id/title使用wrap_内容时,居中效果很好,但是边距不适用于文档的长名称。当我使用0dp时,边距得到尊重,但定心不起作用 如何使约束中的打包链延伸到中心,同时具有动态长度和边距 <android.support.constraint.ConstraintLayout android:id="@+id/top_bar_xml" a

我想把我的页面标题放在中间。标题可以看起来像1个Dokument1或3个大文档。我希望左右边距为60dp,并且文档名称的长度可变。当我为@+id/title使用wrap_内容时,居中效果很好,但是边距不适用于文档的长名称。当我使用0dp时,边距得到尊重,但定心不起作用

如何使约束中的打包链延伸到中心,同时具有动态长度和边距

<android.support.constraint.ConstraintLayout
    android:id="@+id/top_bar_xml"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/open_brackets"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="("
        android:gravity="center_vertical"
        android:layout_marginStart="60dp"

        android:textSize="20sp"
        app:layout_constraintHorizontal_chainStyle="packed"
        app:layout_constraintEnd_toStartOf="@id/page_count"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/page_count"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="1"
        android:gravity="center_vertical"
        android:textSize="20sp"
        app:layout_constraintStart_toEndOf="@id/open_brackets"
        app:layout_constraintEnd_toStartOf="@id/close_brackets"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/close_brackets"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=") "
        android:gravity="center_vertical"
        android:textColor="@color/black"
        android:textSize="20sp"
        app:layout_constraintStart_toEndOf="@id/page_count"
        app:layout_constraintEnd_toStartOf="@id/title"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/title"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginEnd="60dp"
        android:text="DocumentTitle"
        android:textSize="20sp"
        android:gravity="center_vertical"
        android:ellipsize="end"
        app:layout_constraintStart_toEndOf="@+id/close_brackets"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
我简化了这个例子,删除了对ViewModels的页面计数和标题引用;文档下面有其他具有较低边距的视图

您可以设置@id/title的宽度以包装内容并添加

属性,以便当文本视图变得太大而无法满足边距时,该文本视图的约束得到尊重。

您可以设置@id/title的宽度以包装内容并添加

属性,以便当文本视图变得太大而无法满足边距时,该文本视图的约束得到尊重

app:layout_constrainedWidth="true"