繁体   English   中英

Jetpack 撰写滚动监听器

[英]Jetpack compose scroll listener

有没有一种方法可以在滚动列时记录事件? 我使它可滚动,保存了滚动 state,但我找不到在哪里调用 lambda function(作为可组合 onScroll 的参数onScroll: () -> Unit

您可以观察scrollState

 val scrollState = rememberScrollState()
 Column(
    modifier = Modifier
        .verticalScroll(scrollState)
)

您可以检查此scrollState的值:

if (scrollState.isScrollInProgress){
    println("scrolling")
}

如果您需要等待滚动完成,您可以使用if + DisposableEffect

if (scrollState.isScrollInProgress) {
    DisposableEffect(Unit) {
        onDispose {
            println("scroll completed")
        }
    }
}

滚动 state 上有一个名为 isScrollInProgress 的属性。 那个可以用。 如果 isScrollInProgress 为真,我称自己为 lambda function onScroll() 工作正常。

如果您想知道如何在LazyColumn中执行此操作:

val nestedScrollConnection = remember {
  object : NestedScrollConnection {
      override suspend fun onPostFling(consumed: Velocity, available: Velocity): Velocity {
          // On scroll ended detection
          println("scroll completed")
          return super.onPostFling(consumed, available)
      }
  }
}

LazyColumn(
    modifier = Modifier.nestedScroll(nestedScrollConnection)
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM