Adriano Celentano
03/03/2021, 1:44 PMAndrew Neal
03/03/2021, 2:18 PMDaniel
03/03/2021, 2:27 PMAdriano Celentano
03/03/2021, 3:38 PMDaniel
03/03/2021, 3:43 PMSubcomposeLayout { constraints ->
val fieldPlaceables = subcompose(ExposedDropdownMenuSlot.Field) {
ExposedDropdownMenuField(
label = label,
selected = selected,
isExpanded = isExpanded.value,
interactionSource = interactionSource
)
}.map {
it.measure(constraints)
}
val fieldSize = fieldPlaceables.fold(IntSize.Zero) { currentMax, placeable ->
IntSize(
width = maxOf(currentMax.width, placeable.width),
height = maxOf(currentMax.height, placeable.height)
)
}
layout(fieldSize.width, fieldSize.height) {
fieldPlaceables.forEach { it.placeRelative(0, 0) }
subcompose(<http://ExposedDropdownMenuSlot.Menu|ExposedDropdownMenuSlot.Menu>) {
ExposedDropdownMenuDropdown(
values = values,
selected = selected,
onSelect = onSelect,
isExpanded = isExpanded.value,
onCollapse = collapse,
fieldSize = DpOffset(fieldSize.width.toDp(), fieldSize.height.toDp())
)
}.forEach {
it.measure(constraints).place(0, 0)
}
}
}
}
enum class ExposedDropdownMenuSlot { Field Menu }