Mat*_* H. 6 android android-constraintlayout android-jetpack-compose
我正在尝试使用 Jetpack Compose ConstraintLayout,如果所有视图都可见,则说明效果很好。但如果缺少其中一个视图,沙堡就会倒塌。
例如,如果视图是可选的,我会这样管理它:
val (text1, text2) = createRefs()
ConstraintLayout {
if (myTextStr.isNotEmpty()) {
Text(
text = myTextStr,
modifier = Modifier
.constrainAs(text1) {
start.linkTo(parent.start)
bottom.linkTo(parent.bottom)
})
}
Text(
text = myTextStr2,
modifier = Modifier
.constrainAs(text2) {
start.linkTo(parent.start)
bottom.linkTo(text1.top)
})
}
Run Code Online (Sandbox Code Playgroud)
但是,如果第一个 Text 元素丢失,则所有布局都会被破坏,因为第二个 Text 位置取决于它。
一种可能性是保留文本视图,但0.dp如果 myTextStr 为 null 或为空,则将高度设置为。但我想确保 Compose ConstraintLayout 没有提供更干净的方法来实现此目的
您是否尝试过 constrainAs 内的可见性属性?
// ...
Modifier
.constrainAs(title) {
bottom.linkTo(profilePic.top, margin = 16.dp)
start.linkTo(parent.start)
visibility = if (isTitleVisible) Visibility.Visible else Visibility.Gone
}
// ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4111 次 |
| 最近记录: |