我有这个颤动按钮:
RaisedButton(
elevation: 2,
color: Colors.lightBlue,
child: Text('Add'),
onPressed: () {
appState.addSet();
},
)
我有许多按钮设置了相同的属性提升值“ 2”。我不想每次都创建RaisedButton时都定义此值。
然后我想到了用一个新的StatelessWidget和一些参数包装这个RaisedButton的问题。
但是后来我看到每个onPressed都在执行带有动态类型定义的函数:
可以是空方法或具有参数值等...这意味着我如何提供ctor参数
例如覆盖两个类型定义的函数?
或者也许是在扑朔迷离中,我可以以某种方式覆盖样式-不要说字体/颜色-所有RaisedButton类具有相同的高度吗?
答案 0 :(得分:0)
颤动的妙处在于它的小部件,您可以扩展RaisedButton
类并将参数传递给超类(此处为RaisedButton
),并在无输入的情况下默认设置值。
示例:
class MyRaisedButton extends RaisedButton {
const MyRaisedButton({
Key key,
@required VoidCallback onPressed,
Color color,
double elevation,
Widget child,
}) : super(
onPressed: onPressed,
elevation: elevation ?? 2,
color: color ?? Colors.lightBlue,
child: child ?? const Text('Button'),
);
}
使用MyRaisedButton
代替RaisedButton
。如果使用RaisedButton
,这将为您提供相同的功能,只是在您不传递args时将使用默认值。
希望有帮助!