在wrap_content的情况下,Constraint Layout似乎无法正确呈现

时间:2017-11-30 11:40:40

标签: android android-constraintlayout

我做了这个简单的屏幕。我故意这样做是为了表明在wrap_content的情况下约束布局不能正常工作。我知道我可以使constraint_layout为parent而且它不会导致问题,但我想了解为什么这不起作用。

<FrameLayout 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"
    tools:context="com.konel.kryptapps.testapp.MainActivity">

    <android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TextView
            android:id="@+id/textView"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="16dp"
            android:textSize="16sp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            tools:text="text view 1" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="16dp"
            android:layout_marginEnd="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:textSize="14sp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@id/textView"
            tools:text="text view 2" />
    </android.support.constraint.ConstraintLayout>
</FrameLayout>

此xml导致底部textview重叠到顶部textview。它的最高保证金限制并未受到尊重。但是如果我将顶部textview的文本大小更改为14sp,它就能完美运行。

下面是布局绑定屏幕截图:

enter image description here

我已经以编程方式设置了文本。第一个文本视图包含来自lorem ipsum的100个单词。我不明白我可能做错了什么。

P.S。我正在使用com.android.support.constraint:constraint-layout:1.0.2

2 个答案:

答案 0 :(得分:1)

您需要为app:layout_constraintBottom_toTopOf="@id/textView2"设置textView才能正确呈现

<TextView
    android:id="@+id/textView"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginEnd="8dp"
    android:layout_marginStart="8dp"
    android:textSize="16sp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_chainStyle="packed"
    app:layout_constraintBottom_toTopOf="@id/textView2"
    android:text="@string/lorem"/>

答案 1 :(得分:0)

您可能需要使用Constrain Chain