小编Val*_*ima的帖子

如何知道在jetpack compose中惰性行的视图端口中完全可见的项目?

我有一个包含项目的惰性行。现在,我想对每当用户滚动惰性行时在视口中完全可见的项目进行 API 调用。

我尝试过以下代码:

    listState = rememberLazyListState()
    LaunchedEffect(listState){
    snapshotFlow { listState.firstVisibleItemIndex }
    .collectLatest{
    Log.d("printed Item",  listState.firstVisibleItemIndex.toString())
    }}
Run Code Online (Sandbox Code Playgroud)

这段代码的问题是:

  1. 即使第二项占据了视口,除非第一项完全不可见,否则它不会被打印。
  2. 对于平板电脑,由于屏幕尺寸较大,即使屏幕上有 2 个可见项目,也仅对第一个可见项目进行 API 调用。请参阅屏幕截图。

当第一个项目部分可见且第二个项目完全可见时 [1]:https://i.stack.imgur.com/l5QcB.jpg

当第二个图块完全可见并且第一个图块完全不可见时 [2]:https://i.stack.imgur.com/6rmiQ.jpg

对于 2 个项目完全可见的平板电脑 [3]:https://i.stack.imgur.com/QYRTI.jpg

谁能告诉我如何解决我的问题?

android android-layout android-jetpack-compose

12
推荐指数
1
解决办法
9503
查看次数