3

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

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

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

Android Studio 有什么方法可以在@Composable函数中继续使用这些示例测试吗?或者是否有任何其他内置的 Compose 解决方案?

4

1 回答 1

0

有几个解决方案。您可以使用 @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())
        }
    }
}

在这个例子中,我只是展示了一个可组合的文本。但是您可以用您自己的自定义可组合替换它,并为所有参数传入自定义数据。

生成各种自定义数据(如图像、名称、文本、数字等)的更高级解决方案是从后端 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 上创建自己的自定义数据源。

于 2021-11-02T09:22:37.620 回答