OnPageJetpack compose寻呼机的选定回调

crcmnpdw  于 2021-09-13  发布在  Java
关注(0)|答案(2)|浏览(318)

我正在使用来自伴奏者的jetpack compose寻呼机,我想知道如何确切地知道我的页面何时显示在屏幕上。类似于viewpager中的onpageselected方法。
这是我的密码:

HorizontalPager(
        state = pagerState,
        modifier = Modifier
            .fillMaxSize()
            .background(MaterialTheme.colors.background)
    ) { page ->
         // This method reinvoked many times.

      }

'因为当前每个重新编译都会从寻呼机调用该回调方法。

db2dz4w8

db2dz4w81#

明白了!我们可以使用launchedefect来了解您的页面何时会成功显示。

HorizontalPager(
    state = pagerState,
    modifier = Modifier.fillMaxSize()
) { page ->
     LaunchedEffect(key1 = page, block = {
       if (!pagerState.isScrollInProgress) {
          // Here you are
       }
     })
  }

每个键(当前页)仅调用一次LaunchDefect。因此,使用此代码可以实现onpageselected功能。

5lhxktic

5lhxktic2#

使用变量进行跟踪

val trigger by remember { mutableStateOf (false) }
HorizontalPager(
        state = pagerState,
        modifier = Modifier
            .fillMaxSize()
            .background(MaterialTheme.colors.background)
    ) { page ->
         // Shown successfully,
         trigger = true //use at other places as a callback to change state
      }

相关问题