我有一个包含项目的延迟加载行。现在,每当用户滚动该延迟加载行时,我想为完全可见于视口中的项目进行API调用。
我尝试了以下代码:
这段代码存在以下问题:
我尝试了以下代码:
listState = rememberLazyListState()
LaunchedEffect(listState){
snapshotFlow { listState.firstVisibleItemIndex }
.collectLatest{
Log.d("printed Item", listState.firstVisibleItemIndex.toString())
}}
这段代码存在以下问题:
- 即使第二个项目在视口中,只有当第一个项目完全不可见时,它才会被打印。
- 对于平板电脑,由于其大屏幕尺寸,即使屏幕上有2个可见项,仅为第一个可见项调用API。 请参考截图。
当第一个项目部分可见且第二个项目完全可见时 [1]: https://istack.dev59.com/l5QcB.webp
当第二个瓷砖完全可见且第一个瓷砖完全不可见时 [2]: https://istack.dev59.com/6rmiQ.webp
对于同时完全可见的2个平板电脑 [3]: https://istack.dev59.com/QYRTI.webp
请问有人可以告诉我如何解决我的问题吗?
listState.layoutInfo.visibleItemsInfo
? - Phil DukhovlistState.layoutInfo.visibleItemsInfo
会导致无限重组,并且返回屏幕上部分可见项和完全可见项。 - Vallamkonda Neelima