如何在 Jetpack Compose 中预览 LazyPagingItems/Paging 3 库

Ris*_*rdi 18 android-jetpack-compose android-jetpack-compose-list

我认为标题说明了一切。

LazyPagingItems构造函数是内部的。我无法LazyPagingItems在 Preview Composable 中作为参数传递,更不用说传递示例数据了。但我想显示可组合项的预览,我应该怎么做?

@Composable
fun MainUi(users: LazyPagingItems<User>) {
    Scaffold {
        LazyColumn() {
            items(users) {
                // Rest of the code..
            }
        }
    }
}

@Preview
@Composable
fun Preview() {
    DefaultTheme {
        MainUi(users = ) // How to pass sample data here?
    }
}
Run Code Online (Sandbox Code Playgroud)

Tia*_*nes 17

您可以使用PagingData.empty()or PagingData.from(List<T>),如下所示:

@Preview
@Composable
fun Preview() {
    DefaultTheme {
        MainUi(users = flowOf(PagingData.from(listOf(User(..)))).collectAsLazyPagingItems()
    }
}
Run Code Online (Sandbox Code Playgroud)

我不确定这些项目是否显示在预览中,但至少你可以渲染它......

  • 实际上我已经在 Google Issue Tracker [此处](https://issuetracker.google.com/issues/194544557) 中填写了一个问题。我现在可以构建它,但未显示列表。 (3认同)
  • 不幸的是,它们没有在预览中显示 (2认同)
  • 他们表示计划在 2023 年第二季度/第三季度进行。希望它不会再次被神奇地标记为已修复。 (2认同)