gpt4 book ai didi

android - 如何将一个 View 约束在两个可见性可以切换的 View 之下?

转载 作者:行者123 更新时间:2023-12-04 23:42:10 28 4
gpt4 key购买 nike

图片a ConstraintLayout其中包括三个垂直堆叠的项目:

@+id/top
@+id/middle1 or @+id/middle2 (one gets View.VISIBLE, one gets View.GONE)
@+id/bottom
置顶 @+id/middle1@+id/middle2被限制在 @+id/top 的底部,这里没有问题。
有趣的案例是 @+id/bottom .应始终放在 @+id/middle1 之下或 @+id/middle2 ,取决于哪个是可见的(另一个将得到 View.GONE )。有什么方法可以在布局文件中对此进行建模,还是我必须更改 @+id/bottom 的顶部约束?在显示 @+id/middle1 之间切换时和 @+id/middle2 ?

最佳答案

正如 CommonsWare 所提议的,它可以通过 Barrier 来完成。如下:

 <androidx.constraintlayout.widget.Barrier
android:id="@+id/barrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="bottom"
app:barrierAllowsGoneWidgets="false"
app:constraint_referenced_ids="middle1,middle2" />
请注意 app:constraint_referenced_ids 中的 ID不带 @id/字首。
作为我的 middle1middle2有不同的高度,我将其中一个设置为 View.GONE我选择了 app:barrierAllowsGoneWidgets="false"以确保 Barrier位置得到更新,并且没有剩余空间。
更多详情请参阅 official documentation或例如Youtube 上的视频 ConstraintLayout Tutorial Part 4 - BARRIERS AND GROUPS - Android Studio Tutorial

关于android - 如何将一个 View 约束在两个可见性可以切换的 View 之下?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63320806/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com