谢谢你帮助我。
我想做的是减少下面代码的重复;
class PeddingRadius extends StatelessWidget {
PeddingRadius(final column);
@override
Widget build(BuildContext context) {
Container(
padding: const EdgeInsets.all(8.0),
child: Material(
borderRadius: BorderRadius.circular(30),
shadowColor: Colors.grey.shade100,
elevation: 5,
child: //my code
),
)
}
}
有没有一种方法可以在函数或方法之上创建并在下面插入代码?
Image.asset(
'asset/images/HelloWorld.png', height: 100.0, width: 100.0,
),
Text('Hello World, form Dart'),
最佳答案
只需将子属性添加到 PeddingRadius
。
class PeddingRadius extends StatelessWidget {
final Widget child;
PeddingRadius({@required Widget child});
@override
Widget build(BuildContext context) {
return Container(
padding: const EdgeInsets.all(8.0),
child: Material(
borderRadius: BorderRadius.circular(30),
shadowColor: Colors.grey.shade100,
elevation: 5,
child: child,
),
);
}
}
然后给它任何你想要的 child 。
PeddingRadius(
child: Column(
children: [
Image.asset(
assetLocation, height: 100.0, width: 100.0,
),
Text(text),
],
),
)
// or
PeddingRadius(
child: RaisedButton(child: Text("Hello World")),
)
这与@dkap 的答案基本相同,带有自己的小部件类,并且可重用性更高一些,因为它接受所有类型的子项。
关于function - Flutter,如何减少重复的widget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59141604/