Android 当两行以上时如何更正ConstraintLayout TextView重叠

Android 当两行以上时如何更正ConstraintLayout TextView重叠,android,textview,android-constraintlayout,Android,Textview,Android Constraintlayout,我在约束布局方面遇到了一个问题,即一个文本视图中到达第二行的文本不会向下推另一个被约束在其下方的文本视图,直到该行的中间 我用三个文本视图构建了一个简单的布局。第一个文本视图位于左侧,具有设置的宽度。第二个在它的右边,在它和它的父对象之间。第三个位于第二个的下方,第一个的左侧 我希望它看起来像: 但是,如果我删除文本“不重叠”,我会得到: 当第一个文本视图不存在时,文本长度填充两行时,其变化点(“不重叠”中的“O”): 那么,我该如何改变这个布局,以便即使在屏幕左侧有一个文本视图,当它到达

我在约束布局方面遇到了一个问题,即一个文本视图中到达第二行的文本不会向下推另一个被约束在其下方的文本视图,直到该行的中间

我用三个文本视图构建了一个简单的布局。第一个文本视图位于左侧,具有设置的宽度。第二个在它的右边,在它和它的父对象之间。第三个位于第二个的下方,第一个的左侧

我希望它看起来像:

但是,如果我删除文本“不重叠”,我会得到:

当第一个文本视图不存在时,文本长度填充两行时,其变化点(“不重叠”中的“O”):

那么,我该如何改变这个布局,以便即使在屏幕左侧有一个文本视图,当它到达两行时,它也会将文本视图3向下推?而不是把它推到第二条线的一半

我的XML:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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="wrap_content"
    tools:context="com.testapp.myapplication.MainActivity">

    <TextView
        android:id="@+id/text_view_1"
        android:layout_width="120dp"
        android:layout_height="0dp"
        android:background="@color/colorAccent"
        android:text="Text View 1"
        android:textAppearance="@style/TextAppearance.AppCompat.Body2"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/text_view_2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:background="#22AA99"
        android:text="Text View 2 Showing problem with overlap. Overlapping. Not O"
        android:textAppearance="@style/TextAppearance.AppCompat.Body2"
        app:layout_constraintLeft_toRightOf="@id/text_view_1"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/text_view_3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#FF00FF"
        android:text="Text View 3"
        android:textAppearance="@style/TextAppearance.AppCompat.Body2"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toRightOf="@id/text_view_1"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@id/text_view_2" />

</android.support.constraint.ConstraintLayout>

谢谢。

删除此行:

app:layout_constraintBottom_toBottomOf="parent"
从id为
text\u view\u 3的
text视图
,如:

<TextView
    android:id="@+id/text_view_3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#FF00FF"
    android:text="Text View 3"
    android:textAppearance="@style/TextAppearance.AppCompat.Body2"
    app:layout_constraintLeft_toRightOf="@id/text_view_1"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@id/text_view_2" />

我找到了

app:layout\u constrainedHeight=“true”


来自约束布局,该布局对包裹内容实施约束。因此,我认为这是正确的解决方案,因为这也允许我设置
应用程序:布局\u constraintBottom\u toBottomOf=“parent”
,从而在视图底部启用边距。

您的
文本视图\u 1
宽度仅为1 dp?你能看到文字吗?啊,那是演示最后一张照片。应该是120dpYeh来修复它。你知道为什么吗?我想这一定是因为整个父级设置为包装内容,所以将其固定在底部会让它感到困惑。不过谢谢。:)对于水平重叠,我们使用这个
app:layout\u constrainedWidth=“true”
你救了我的命。。。(好吧,我可能有点恼火,但你还是让我免于头痛)