能否为Compose主Widget添加@Preview注解以兼具预览与组件功能?
问题:能否给WaterCounter组件直接添加@Preview注解,让它同时作为功能组件和预览组件以减少代码行数?
原代码示例:
@Composable private fun WaterCounter(modifier: Modifier = Modifier) { val count = 0 Text( text = "You've had $count glasses of water", modifier = modifier.padding(all = 16.dp) ) } @Preview(showBackground = true) @Composable private fun PreviewWaterCounter() { WaterCounter() }
可以直接给WaterCounter添加@Preview注解,让它同时承担功能组件和预览组件的角色,省去单独写预览函数的代码。
修改后的代码如下:
@Preview(showBackground = true) @Composable private fun WaterCounter(modifier: Modifier = Modifier) { val count = 0 Text( text = "You've had $count glasses of water", modifier = modifier.padding(all = 16.dp) ) }
这种写法完全合规,Compose支持在同一个@Composable函数上同时标注@Preview注解。需要注意的是,如果后续组件需要接收外部传入的动态参数(比如把count改成父组件传入),要给这些参数设置合理的默认值,这样预览工具才能正常渲染出组件效果。
内容的提问来源于stack exchange,提问作者Tehleel Mir
相关产品推荐
相关产品推荐

