lit*_*hen 10 android android-layout android-constraintlayout
所以我有一个这样的constraintLayout
<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>
Run Code Online (Sandbox Code Playgroud)
目前textview的结尾是在view1的开头,但是,当view1的可见性消失时,我希望textview的结尾到view2的开头,否则长字符串可能会覆盖view2。有没有办法将约束设置为两个视图,或者有更好的解决方案吗?
ZeR*_*eRj 24
您可以使用 Barrier 来约束多个视图。
<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>
Run Code Online (Sandbox Code Playgroud)
textview 将被约束到更靠左的视图
您可以为视图设置一个 GlobalLayoutListener 来处理可见性更改,如本答案中所述,然后更改与其可见性状态相关的约束:
ConstraintSet constraintSet = new ConstraintSet();
constraintSet.clone(constraintLayout);
constraintSet.connect(R.id.text_view,ConstraintSet.RIGHT,R.id.view2,ConstraintSet.LEFT,0);
constraintSet.applyTo(constraintLayout);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3547 次 |
最近记录: |