Vsevolod Ganin
01/14/2021, 5:50 PMonSizeChanged
reports size without padding?
@Preview
@Composable
fun Test() {
val density = AmbientDensity.current
Box(
modifier = Modifier
.padding(with(density) { 50.toDp() })
.size(with(density) { 50.toDp() })
.background(Color.Red)
.onSizeChanged { println(it) }
)
}
I expect this to print 150 x 150
, but get 50 x 50
instead.Lukas Sztefek
01/14/2021, 5:53 PMmodifier = Modifier
.onSizeChanged { println(it) }
.padding(with(density) { 50.toDp() })
.size(with(density) { 50.toDp() })
.background(Color.Red)
Vsevolod Ganin
01/14/2021, 5:55 PMonSizeChanged { println(it) }
with
layout { measurable, constraints ->
val placeable = measurable.measure(constraints)
println("${placeable.width} x ${placeable.height}")
layout(placeable.width, placeable.height) {
placeable.place(0, 0)
}
}
before padding
and size
did the trick. Seems like a bug in onSizeChanged
, I’ll file