在XML中,我们使用View.INVISIBLE
表示根本不显示视图,但出于布局目的,它仍然占用空间.喷气背包组合的替代方案是什么?
AnimatedVisibility(
// true or false
) {
Button() // button code.
}
在XML中,我们使用View.INVISIBLE
表示根本不显示视图,但出于布局目的,它仍然占用空间.喷气背包组合的替代方案是什么?
AnimatedVisibility(
// true or false
) {
Button() // button code.
}
您可以构建自定义修改器来测量Composable占用的空间.
类似于:
fun Modifier.visible(visible: Boolean) = if (visible) this else this.then(Invisible)
private object Invisible : LayoutModifier {
override fun MeasureScope.measure(
measurable: Measurable,
constraints: Constraints
): MeasureResult {
val placeable = measurable.measure(constraints)
return layout(placeable.width, placeable.height) {}
}
}