![](/img/trans.png)
[英]How to know when a LazyColumn (or any Composable for that matter) has been touched?
[英]Compose - How to know when a sub-composable has been rendered
在 Compose 上工作,我想知道何時渲染了一個子組合來啟動我的LaunchEffect
這是我想要實現的一個小片段:
fun MyCompo(
screen: @Composable (Modifier) -> Unit,
) {
val fr = remember { FocusRequester() }
screen(Modifier.focusRequester(fr))
LaunchEffect(Unit) {
fr.requestFocus()
}
}
我的LaunchEffect
崩潰了,因為它是在screen()
有時間渲染之前啟動的。
知道如何實現這一目標嗎? 謝謝
如何將回調添加到您的屏幕 Composable 並從屏幕實現的 LaunchedEffect 調用它? 這行得通嗎?
@Composable
fun MyComposable(
screen: @Composable (Modifier, ()->Unit) -> Unit,
) {
val fr = remember { FocusRequester() }
screen(Modifier.focusRequester(fr)) {
println("Child Composable")
}
LaunchedEffect(Unit) {
println("Parent Composable")
fr.requestFocus()
}
}
並調用它
MyComposable { modifier, onComposed->
Box(modifier = modifier
.size(200.dp)
.border(3.dp, Color.Red)) {
LaunchedEffect(key1 = Unit){
onComposed()
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.