所以我有一个这样的约束布局
<ConstraintLayout>
<TextView
android:id="@+id/text_view"
app:layout_constraintEnd_toStartOf="@+id/view1" />
<View
android:id="@+id/view1"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<View
android:id="@+id/view2"
aapp:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</ConstraintLayout>
目前,textview 的结尾在 view1 的开头,但是,当 view1 的可见性消失时,我希望 textview 的结尾到 view2 的开头,否则长字符串可能会覆盖 view2。有没有办法将约束设置为两个 View ,或者有没有更好的解决方案?
最佳答案
您可以使用 Barrier 来约束多个 View 。
<ConstraintLayout>
<androidx.constraintlayout.widget.Barrier
android:id="@+id/barrier"
app:barrierDirection="left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:constraint_referenced_ids="view1,view2"/>
<TextView
android:id="@+id/text_view"
app:layout_constraintEnd_toStartOf="@id/barrier" />
<View
android:id="@+id/view1"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<View
android:id="@+id/view2"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</ConstraintLayout>
TextView 将被约束到更左侧的 View
关于android - 如何为两个 View 设置约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50047796/