ConstraintLayout以与兄弟姐妹视图高度匹配,以较高者为准

问题描述 投票:1回答:1

假设我有2个视图。那些2的文本值可以是id tvLabel的视图,而与clValueContainer可以更大的视图相比,高度可以更大。现在,我要使2个视图遵循它们的高度,以更大的高度复制另一个视图。关于这个有什么想法吗?

<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <androidx.appcompat.widget.AppCompatTextView
        android:id="@+id/tvLabel"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:minHeight="@dimen/_35sdp"
        android:layout_marginEnd="@dimen/_1sdp"
        android:paddingTop="@dimen/_12sdp"
        android:paddingBottom="@dimen/_12sdp"
        android:paddingEnd="@dimen/_3sdp"
        android:text="@{label}"
        android:textColor="@color/color_light"
        android:textSize="@dimen/_12ssp"
        android:gravity="start|center"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintEnd_toStartOf="@+id/clValueContainer"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="@+id/clValueContainer"
        tools:ignore="RtlSymmetry"
        tools:text="@string/rental_reversions"/>

    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/clValueContainer"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="@dimen/_1sdp"
        android:paddingTop="@dimen/_6sdp"
        android:paddingBottom="@dimen/_6sdp"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintVertical_bias="0.0"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/tvLabel"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="@+id/tvLabel">

        <androidx.appcompat.widget.AppCompatTextView
            android:id="@+id/tvValue"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:minWidth="@dimen/_40sdp"
            android:text="@{score ? @string/provided : @string/missing}"
            android:textColor="@color/color_dark"
            android:textSize="@dimen/_12ssp"
            android:gravity="center_vertical|end"
            android:textAlignment="center"
            android:padding="@dimen/_6sdp"
            app:data="@{score}"
            app:layout_constraintHorizontal_bias="1.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            tools:ignore="RtlSymmetry"
            tools:text="10.0"
            tools:background="@drawable/rounded_green"/>

    </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
android android-layout android-constraintlayout androidx
1个回答
0
投票

最后得到了,我将在下面解释如何获得它。参见下面的新代码:

    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/clRowContainer"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent">

        <androidx.appcompat.widget.AppCompatTextView
            android:id="@+id/tvLabel"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:minHeight="@dimen/_35sdp"
            android:layout_marginEnd="@dimen/_1sdp"
            android:paddingTop="@dimen/_12sdp"
            android:paddingBottom="@dimen/_12sdp"
            android:paddingEnd="@dimen/_3sdp"
            android:text="@{label}"
            android:textColor="@color/color_light"
            android:textSize="@dimen/_12ssp"
            android:gravity="start|center"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintEnd_toStartOf="@+id/clValueContainer"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="@+id/clValueContainer"
            tools:ignore="RtlSymmetry"
            tools:text="@string/rental_reversions"/>

        <androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/clValueContainer"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="@dimen/_1sdp"
            android:paddingTop="@dimen/_6sdp"
            android:paddingBottom="@dimen/_6sdp"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintVertical_bias="0.0"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@+id/tvLabel"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="@+id/tvLabel">

            <androidx.appcompat.widget.AppCompatTextView
                android:id="@+id/tvValue"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:minWidth="@dimen/_40sdp"
                android:text="@{score ? @string/provided : @string/missing}"
                android:textColor="@color/color_dark"
                android:textSize="@dimen/_12ssp"
                android:gravity="center_vertical|end"
                android:textAlignment="center"
                android:padding="@dimen/_6sdp"
                app:data="@{score}"
                app:layout_constraintHorizontal_bias="1.0"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                tools:ignore="RtlSymmetry"
                tools:text="10.0"
                tools:background="@drawable/rounded_green"/>

        </androidx.constraintlayout.widget.ConstraintLayout>

    </androidx.constraintlayout.widget.ConstraintLayout>

现在,要解决此问题,由于我们要复制其高度,因此请在每个视图的底部创建2个约束并将它们相互连接。使视图的高度wrap_content和完成的高度都已经固定。

如果您想复制另一个更大的元素的宽度,也只是将它的开始或结束限制到每个元素的宽度,并将其宽度设置为wrap_content,这也是相同的。

© www.soinside.com 2019 - 2024. All rights reserved.