function - Flutter,如何减少重复的widget

标签 function flutter widget dart-2

谢谢你帮助我。

我想做的是减少下面代码的重复;

 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/

相关文章:

javascript - 在Javascript中单击div后如何显示div中的内容?

使用单个函数进行 Python 多处理

Django使用元模型在表单中隐藏外键

python - 如何删除/隐藏 matplotlib slider 值

Android:自定义时钟小部件服务解决方法?

function - jQuery 函数在 Safari 上不起作用

function - Go 是否支持函数的类型转换/类型转换?

android - 带有ListTiles和Button行的Flutter下拉菜单

flutter - 如何在布局中随机放置小部件

Flutter - Navigator.push() 在扩展 State<Main> 上给出错误 "Context does not include a Navigator"