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
谢谢,
在 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
谢谢,