@Composable
fun MyOwnColumn(
modifier: Modifier = Modifier,
content: @Composable () -> Unit
) {
Layout(
modifier = modifier,
content = content
) { measurables, constraints ->
//不要进一步限制子视图,使用给定的约束来--》测量《--它们
val placeables = measurables.map { measurable ->
// 测量每个子布局
measurable.measure(constraints)
}
// 跟踪我们放置每个子布局的 y 坐标
var yPosition = 0
// 将布局的大小设置为尽可能大
layout(constraints.maxWidth, constraints.maxHeight) {
// 将每个子布局放在父布局中
placeables.forEach { placeable ->
// 在屏幕上定位项目
placeable.placeRelative(x = (constraints.maxWidth / 2 - placeable.width / 2), y = yPosition)
// 记录 y 坐标放置到
yPosition += placeable.height
}
}
}
}