Ответ
Да, работал. Layout — это низкоуровневая функция Compose для создания кастомных лейаутов. Она позволяет вручную измерять и размещать дочерние элементы.
Пример:
@Composable
fun CustomLayout(
modifier: Modifier = Modifier,
content: @Composable () -> Unit
) {
Layout(
modifier = modifier,
content = content
) { measurables, constraints ->
// Измеряем дочерние элементы
val placeables = measurables.map { it.measure(constraints) }
// Вычисляем размер лейаута
val width = placeables.sumOf { it.width }
val height = placeables.maxOfOrNull { it.height } ?: 0
// Размещаем дочерние элементы
layout(width, height) {
var x = 0
placeables.forEach { placeable ->
placeable.placeRelative(x, 0)
x += placeable.width
}
}
}
}
Используется, когда стандартные Row, Column или Box не подходят. Например, для сложных анимаций или нестандартного позиционирования.