Android 可组合文本在收到颜色参数时中断预览。有解决方法吗?

Android Composable Text breaks preview when it receives a Color parameter. Is there a workaround?

在 Bumblebee 2011.1.1 Canary 11 之前的任何 Android Studio 版本中,以下视图不会呈现,实际上会以意想不到的方式破坏预览器。

@Preview
@Composable
fun ColoredText(color: Color = Color.Red) = Text("text")

Arctic Fox 的稳定版抛出 MethodNotFoundError 而 canary 抛出一个警告说找不到视图。我怎样才能让预览再次工作?

使用 @Preview Composables 的主要限制是 Preview Composable 函数不得采用任何参数.

您的 ColoredText 可组合项将 color: Color = Color.Red 作为参数,因此不会呈现。您还会看到代码中的 @Preview Annotation 以红色突出显示。

要预览您的代码,您可以制作一个名为 ColoredTextPreview() 的预览可组合项,它不接受任何参数。使用它来预览 ColoredText() 并传入颜色参数

@Preview
@Composable
//preview doesn't accept parameters
fun ColoredTextPreview() = ColoredText(Color.Red)

@Composable
//create a 2nd non-preview composable that accepts parameters
fun ColoredText(color1: Color = Color.Red) {
    Text(
        text = "text",
        color = color1,
        modifier = Modifier.fillMaxWidth()
    )
}

请务必在您的导入语句中包含这行代码以帮助设置颜色。

import androidx.compose.ui.graphics.Color

谢谢,