在列和行中应用距离时,SizedBox
和Padding
之间是否存在性能差异。
以下是一个例子:
child: Column(
children: <Widget>[
SizedBox(
height: 30.0,
),
ProfileAvatar(
photoUrl: vo.photoUrl,
height: 90.0,
),
或者
child: Column(
children: <Widget>[
Padding(
padding: EdgeInsets.only(top: 30.0),
),
ProfileAvatar(
photoUrl: vo.photoUrl,
height: 90.0,
),
哪一个应该是首选的,或者是由颤振团队推荐的?
答案 0 :(得分:4)
SizedBox
获胜。因为它只对它的孩子施加约束。
但是考虑到他们俩都没有孩子,他们会做同样的事情。最多你会有一个纳秒的差异/ 考虑到您的示例中的两个语法都将实例化为“const”,这一点尤其正确。这会中止以下重建。
使用最适合你的东西。收益是如此微小,你永远不会注意到差异。所以采取更清楚的方法
答案 1 :(得分:0)
正如Remi所说,这对您而言并没有太大关系,但是如果您决定只调整左,右,上或下偏移量的单个或组合,那么用Padding包装小部件就更有意义了。
填充会插入其子项(在其子项的边缘添加空白区域而不扩展子项)。
SizedBox创建一个固定大小的框,其子级将扩展到指定的宽度和高度。
答案 2 :(得分:0)
我认为SizedBox
通过平整嵌套的代码行使代码更易于阅读。