是否有可能将装饰(填充,边距等)字段设置为所有Container小部件的应用程序范围的默认值?
我知道我们可以创建BoxDecoration,EdgeInstets等的一个实例,将其存储在变量中,然后像这样在所有Container中仅分配该变量:
Container(
margin: _margin,
padding: _padding,
decoration: _boxDecoration
)
但这不是我的意思。我的意思是即使不分配任何值。我试图像扩展容器class MyContainer extends Container { ... }
并在构造函数中设置所需的默认值,但是它不起作用。
您不应该扩展Container
。您应该扩展StatelessWidget
。 Flutter与其说是继承,不如说是撰写。
您应该有这样的东西:
class MyContainer extends StatelessWidget{
final EdgeInsets _globalPadding = EdgeInsets.all(4);
final Widget child;
MyContainer({Key key, this.child}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
padding: _globalPadding,
child: child,
);
}
}
然后您可以使用MyContainer
代替任何Container
。