You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否为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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 05:01:24