簡體   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