Flutter 为小部件树中的所有容器指定相同的BoxDecoration值
是否可以将所有容器小部件的装饰(填充、边距等)字段设置为应用程序范围的默认值 我知道我们可以创建一个BoxEdition、EdgeInsets等的实例,存储在一个变量中,并在所有容器中仅分配该变量,如下所示:Flutter 为小部件树中的所有容器指定相同的BoxDecoration值,flutter,flutter-layout,Flutter,Flutter Layout,是否可以将所有容器小部件的装饰(填充、边距等)字段设置为应用程序范围的默认值 我知道我们可以创建一个BoxEdition、EdgeInsets等的实例,存储在一个变量中,并在所有容器中仅分配该变量,如下所示: Container( margin: _margin, padding: _padding, decoration: _boxDecoration ) class MyContainer extends StatelessWidget{ final EdgeInsets
Container(
margin: _margin,
padding: _padding,
decoration: _boxDecoration
)
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(
margin: _margin,
padding: _padding,
decoration: _boxDecoration
)
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(
margin: _margin,
padding: _padding,
decoration: _boxDecoration
)
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
代替任何容器