我正在开发compose基于UI的android应用程序。我需要获取可组合的大小,并获取每个真实的更改的大小。我检查了onSizeChanged的基本代码。onSizeChanged创建修饰符扩展OnRemeasuredModifier并存储以前的size,但在每次重新组合后,前面的代码被重置,这会导致无限调用onSizeChanged。我尝试了composed,但没有帮助。下面是一个示例代码:
var counter by remember { mutableStateOf(0) }
LaunchedEffect(key1 = counter, block = {
delay(1000)
counter++
})
Box(
modifier = Modifier.fillMaxSize(),
contentAlignment = Alignment.Center
) {
Text(
modifier = Modifier
.onSizeChanged {
it
}
.composed {
Modifier.onSizeChanged {
it
}
},
text = "Hello, $counter!",
color = Color.Black
)
}
}
1条答案
按热度按时间juzqafwq1#
我实现的解决方案是记住onSizeChangedModifier以保存以前的大小。但我不确定这是正确的方法。
我尝试了composed,但是没有用。所以我创建了remembered函数: