Mar*_*arc 9 android-jetpack-compose
我正在构建一个可扩展的可组合项,单击时它将展开。这可以通过使用 AnimatedVisibility 来实现,效果非常好。可见性动画的代码:
AnimatedVisibility(
visible = isExpanded,
) {
// Content removed.
}
Run Code Online (Sandbox Code Playgroud)
我当前面临的问题是,它位于垂直可滚动列中,当单击展开它旁边时,它应该滚动到展开的内容。
BringIntoViewRequester据我所知,这可以通过使用下面的代码片段中的 as来完成:
var isExpanded by remember { mutableStateOf(false) }
val intoViewRequester = remember { BringIntoViewRequester() }
ClickableComposable(modifier = Modifier.clickable {
isExpanded = !isExpanded
if(isExpanded) {
coroutineScope.launch {
// delay(200)
intoViewRequester.bringIntoView(rect = null)
}
}
})
AnimatedVisibility(
modifier = Modifier.bringIntoViewRequester(intoViewRequester),
visible = isExpanded,
) {
// Content removed.
}
Run Code Online (Sandbox Code Playgroud)
上面的代码可以处理延迟,但这对于用户来说并不是完美的交互。首先看到内容展开,然后看到页面滚动。理想的情况是它会同时发生,但内容尚未以任何方式进行测量。通过消除延迟,它不起作用,因为内容尚不可见。
Compose 中有什么可以同时进行扩展和滚动吗?
| 归档时间: |
|
| 查看次数: |
1045 次 |
| 最近记录: |