You*_*ail 8 android-jetpack-compose
我有一个包含多个视图元素的撰写列。我想检测用户何时垂直滚动列并到达其末尾。我们怎样才能做到这一点?
在 Compose 中,您应该对状态更改做出反应,而不是寻找或创建侦听器。
为了防止冗余重组,在这种情况下derivedStateOf
应该使用:只有当基于其他状态变量(例如 )的生成结果发生scrollState
更改时,它才会触发重组:
val scrollState = rememberScrollState()
val endReached by remember {
derivedStateOf {
scrollState.value == scrollState.maxValue
}
}
Run Code Online (Sandbox Code Playgroud)
如果您在更改变量时需要执行一些副作用,例如请求更多数据,则可以根据副作用文档以不同方式在 Compose 中执行此操作。例如,使用LaunchedEffect
:
if (endReached) {
LaunchedEffect(Unit) {
// react on scroll end
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6418 次 |
最近记录: |