工具属性 - Jetpack Compose 中的示例资源

Kur*_*chy 8 android android-jetpack-compose android-jetpack-compose-text

在视图世界中,我们可以使用@tools:sample/*资源来获取示例文本,例如full_namesfirst_namescitiesdates

据我所知,Android Studio 布局编辑器使用了这些注释,以便能够在编辑器上查看模拟数据。

在 Compose 世界中没有 xml,因此也没有@tools:sample/*.

Android Studio 有什么办法仍然可以在函数中使用这些示例测试吗@Composable?或者还有其他内置的 Compose 解决方案吗?

And*_*Dev 1

有几种解决方案。您可以使用 @PreviewParameter 或简单地在预览可组合项中编写代码来生成所需的数据。就我个人而言,我从不使用预览模式,如果使用,我可能只会在其中编写自定义代码来创建所需的数据。

@预览参数:

您可以使用@PreviewParameter注释为预览创建模拟数据。这是一篇关于如何执行此操作的文章。

https://medium.com/snapp-mobile/sample-data-in-compose-previews-bec32b62370f

另外,请参阅这篇文章:

如何使用@PreviewParameter注解?

注意:您只能在每个可组合函数上使用@PreviewParameter。有点让它毫无用处。

自定义代码:

@Preview
@Composable
fun MyList() {
    Column() {
        repeat(5) {
            Text("Number: " + it.toString())
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在此示例中,我仅显示一个文本可组合项。但您可以将其替换为您自己的自定义可组合项,并传入所有参数的自定义数据。

生成各种自定义数据(例如图像、名称、文本、数字等)的更高级解决方案是从后端 API 检索数据。您可以使用 Wirespec。它提供 JSON 数据,并且已经有许多内置数据类型:

https://wirespec.dev

例如,下面是一个提供模拟天气数据的 API:

https://api.wirespec.dev/wirespec/weather/getweather

这是生成数据的 API:

https://wirespec.dev/Wirespec/projects/apis/Weather/apis/getWeather

这是生成随机书籍列表的一个: https://api.wirespec.dev/wirespec/books/getbooks https://wirespec.dev/Wirespec/projects/apis/Books/apis/getBooks

您可以在 Wirespec 上创建自己的自定义数据源。