大小的框与填充列的行和列的距离

时间:2018-06-06 13:41:45

标签: flutter

在列和行中应用距离时,SizedBoxPadding之间是否存在性能差异。

以下是一个例子:

        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,
            ),

哪一个应该是首选的,或者是由颤振团队推荐的?

3 个答案:

答案 0 :(得分:4)

SizedBox获胜。因为它只对它的孩子施加约束。

但是考虑到他们俩都没有孩子,他们会做同样的事情。最多你会有一个纳秒的差异/ 考虑到您的示例中的两个语法都将实例化为“const”,这一点尤其正确。这会中止以下重建。

使用最适合你的东西。收益是如此微小,你永远不会注意到差异。所以采取更清楚的方法

答案 1 :(得分:0)

正如Remi所说,这对您而言并没有太大关系,但是如果您决定只调整左,右,上或下偏移量的单个或组合,那么用Padding包装小部件就更有意义了。

填充会插入其子项(在其子项的边缘添加空白区域而不扩展子项)。

SizedBox创建一个固定大小的框,其子级将扩展到指定的宽度和高度。

答案 2 :(得分:0)

我认为SizedBox通过平整嵌套的代码行使代码更易于阅读。