android - 如何使用带有 LazyVerticalGrid 的 jetpack 组合分页

标签 android android-jetpack-compose android-paging-3

我正在尝试使用 LazyVerticalGrid 显示分页项目。我正在尝试的代码如下所示。

 val categories = repo.categories.collectAsLazyPagingItems()

 LazyVerticalGrid(
    cells = GridCells.Fixed(2),
    modifier = Modifier.padding(8.dp)
 ) {

      items(categories) { category ->
          Box(Modifier.padding(8.dp)) {
              CategoryView(category)
          }
      }

 }
请注意,我已导入 androidx.paging.compose.itemsandroidx.paging.compose.collectAsLazyPagingItems .还有categoriesLazyPagingItems<Category> 类型.
它与 LazyColumn 完美配合和 LazyRow但不是 LazyVerticalGrid .
我得到的错误是:
Type mismatch.
Required:
Int
Found:
LazyPagingItems<Category>

最佳答案

我通过为 LazyGridScope 编写扩展函数想出了一个解决方案就像为 LazyListScope 写的那篇文章一样在 androidx.paging:paging-compose图书馆。

@ExperimentalFoundationApi
public fun <T: Any> LazyGridScope.items(
    lazyPagingItems: LazyPagingItems<T>,
    itemContent: @Composable LazyItemScope.(value: T?) -> Unit
) {
    items(lazyPagingItems.itemCount) { index ->
        itemContent(lazyPagingItems[index])
    }
}

关于android - 如何使用带有 LazyVerticalGrid 的 jetpack 组合分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68445699/

相关文章:

android - 是否可以使用 XML 文件中的动画将图像居中?

javascript - Phonegap 2.4 Facebook 插件登录不起作用

android - 将列从 Arrangement.Center 动画到 Arrangement.Top

android - 如何在 Jetpack compose 中制作 FlipCard 动画

android - 为什么 AsyncPagingDataDiffer submitData() 应该卡住和超时测试?

Android Room Paging3 动态过滤的正确方法

android - Android 中的 ImageView 内容是否有 tools 属性?

android - 在android compose中找不到同时使用底部工作表和底部导航栏的方法

Android Paging 3 与房间

android - 触摸画圆