繁体   English   中英

在可组合函数中重复使用 Jetpack Compose 中的一组预览注释

[英]Reuse a single set of preview annotations in Jetpack Compose across composable functions

在 Jetpack Compose 中迈出第一步,除了一个烦人的问题外,这是非常了不起的。

我有一组不变的预览:正常、黑暗和 RTL:

@Preview(
    name = "Normal",
    group = "Screen",
    showBackground = true
)
@Preview(
    name = "Dark",
    group = "Screen",
    showBackground = true,
    uiMode = Configuration.UI_MODE_NIGHT_YES
)
@Preview(
    name = "RTL",
    group = "Screen",
    showBackground = true,
    locale = "iw"
)
@Composable
fun JustAComposable() {
   ...
}

举个例子,我预览了 50 个可组合函数。 我需要复制粘贴这组 50 次,这是绝对不正确的。

注释 inheritance 是被禁止的,所以我的问题是:是否有人找到了在所有可组合函数中重复使用同一组预览的方法?

我能想到的唯一 2 个解决方案是:

  • 在开发时使用多个自定义预览。
  • 部分重用预览 - 对名称和组使用编译时常量。

编辑:

我创建了一个功能请求来组成团队,以便能够创建自定义注释并使用我想重用的所有预览来注释注释。

这样我只需要使用我的自定义注释。

可以在Google Issue Tracker中进行跟踪

已接受的功能请求现已实施,从 Android Studio Dolphin 和 Jetpack Compose 1.2.0-beta01 开始可用。

它被称为Multipreview Annotation 可以在此处找到有关此功能的更多信息。

要使用此功能,您必须创建自定义注释 class。

@Preview(
    name = "small font",
    group = "font scales",
    fontScale = 0.5f
)
@Preview(
    name = "large font",
    group = "font scales",
    fontScale = 1.5f
)
annotation class FontScalePreviews

现在您可以应用此注释 class。例如:

@FontScalePreviews
@Composable
fun HelloWorldPreview() {
    Text("Hello World")
}

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM