繁体   English   中英

如何在 Composable 中使用示例数据?

[英]How to use sample data in Composable?

在 XML 中,我们通过使用@tools:sample/first_names等属性来使用样本名称、日期等。 有什么方法可以在 Preview Composable 中以类似的方式使用来自@tools:sample的示例数据?

您可以使用@PreviewParameter

例如:

data class Obj(val name :String,val count:Int)

@Composable
fun ObjCard(obj:Obj) {
    Card(
        Modifier.width(100.dp).height(50.dp)){
        Column(
            verticalArrangement = Arrangement.Center,
            horizontalAlignment = Alignment.CenterHorizontally)
        {
            Text("Name = " +obj.name)
            Text("Count = " +obj.count)
        }
    }
}

在这种情况下,您可以实现PreviewParameterProvider接口并创建如下内容:

class SampleObjProvider: PreviewParameterProvider<Obj> {
    override val values = sequenceOf(
         Obj("Obj1",10),
         Obj("Obj2",70))
    override val count: Int = values.count()
}    

最后将@PreviewParameter应用于ObjCard组合:

@Preview(showBackground = true)
@Composable
fun ObjCard(@PreviewParameter(SampleObjProvider::class)  obj:Obj) {
    //..same code 
}

在此处输入图像描述

暂无
暂无

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

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