Flutter:如何在无状态组件中用带参数枚举设置容器圆角?
解决Flutter枚举中获取borderRadius的问题
你只需要通过传入的size枚举实例直接访问它的borderRadius属性就行,另外四个角圆角一致的话,代码还能简化:
1. 正确访问枚举属性
把你代码里标记的**borderRadius**替换成size.borderRadius——size是StreamBoxSize的实例,每个枚举值都自带borderRadius属性,直接调用就能拿到对应的数值。
2. 简化BorderRadius写法
既然四个圆角数值都相同,没必要用BorderRadius.only逐个设置,直接用BorderRadius.circular()一步搞定,代码更简洁。
修改后的完整组件代码:
class StreamBox extends StatelessWidget { const StreamBox({ super.key, this.size = StreamBoxSize.large, }); final StreamBoxSize size; @override Widget build(BuildContext context) { return Container( decoration: BoxDecoration( color: Colors.white, // 直接通过size访问枚举的borderRadius属性,并用简化写法 borderRadius: BorderRadius.circular(size.borderRadius), ), // 其他组件内容... ); } }
这样当你使用StreamBox(size: StreamBoxSize.small)时,容器圆角就会自动设为9,完全符合你的需求。
内容的提问来源于stack exchange,提问作者ericbachmann
相关产品推荐
相关产品推荐

