Junior — Middle
Como pode ser determinado um layout de interface de utilizador individual em Jetpack Compose?
sobes.tech IA
Resposta da IA
No Jetpack Compose, para definir um layout personalizado de interface de utilizador, utiliza-se a função Layout, que permite gerir de forma independente o posicionamento e o tamanho dos elementos filhos.
Exemplo de criação de um compositor personalizado:
@Composable
fun CustomLayout(
modifier: Modifier = Modifier,
content: @Composable () -> Unit
) {
Layout(
content = content,
modifier = modifier
) { measurables, constraints ->
// Medir os elementos filhos
val placeables = measurables.map { it.measure(constraints) }
// Definir o tamanho do container
val width = placeables.maxOfOrNull { it.width } ?: constraints.minWidth
val height = placeables.sumOf { it.height }
layout(width, height) {
var yPosition = 0
placeables.forEach { placeable ->
placeable.placeRelative(x = 0, y = yPosition)
yPosition += placeable.height
}
}
}
}
Neste exemplo, os elementos filhos são colocados verticalmente um abaixo do outro. Esta abordagem oferece controlo total sobre a disposição dos elementos na UI.