在 XML 中,我们通过使用诸如 @tools:sample/first_names 之类的属性来使用样本名称、日期等。 有什么方法可以在预览可组合中使用与 @tools:sample 类似的示例数据?
答案 0 :(得分:1)
您可以使用 @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
}