我正在尝试在 Android 中实现自定义“行”布局,如下所示:
@Composable
fun CustomLayout(modifier: Modifier, content: @Composable () -> Unit){
Layout(
modifier = modifier,
content = content,
) { measurables, constraints ->
val placeables = measurables.map { measurable ->
measurable.measure(constraints)
}
var xPos = 0
layout(constraints.maxWidth, constraints.maxHeight) {
placeables.forEach { placeable ->
placeable.placeRelative(x = xPos, y = 0)
xPos += placeable.width
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
以下是此可组合项的预览:
@Preview(name = "Preview")
@Composable
fun customLayoutPreview() {
CustomLayout(Modifier.size(1080.dp,100.dp)){
Box(
Modifier
.size(32.dp, 64.dp)
.background(Color.Red)) {
}
Box(
Modifier
.size(100.dp, 64.dp)
.background(Color.Green)) {
} …Run Code Online (Sandbox Code Playgroud)