首页 文章

所有小部件的颤动填充?

提问于
浏览
10

我正在尝试在Card小部件中的一些文本和图标的顶部和底部添加一些填充 . 我发现flutter有一个简单的方法来为容器做这个,但似乎无法找到一种方法来与其他小部件(除了将它们包装在容器中) . 这是我到目前为止的代码:

body: new Container(
    padding: new EdgeInsets.all(10.0),
    child: new Column(
      crossAxisAlignment: CrossAxisAlignment.stretch,
      children: <Widget> [
        new Card(
          color: Colors.white70,
          child: new Container(
            padding: new EdgeInsets.all(10.0),
            child: new Column(
              mainAxisAlignment: MainAxisAlignment.spaceBetween,
              crossAxisAlignment: CrossAxisAlignment.center,
              children: <Widget> [ //Padding between these please
                new Text("I love Flutter", style: new TextStyle(fontSize: 20.0, fontWeight: FontWeight.bold)),
                new Icon(Icons.favorite, color: Colors.redAccent, size: 50.0)
              ]
            )
          )
        )
      ]
    )
  )

所以在我的列子中,我想在顶部和底部添加一些填充,而不必插入新的Container . 这可能吗?

2 回答

  • 0

    你可以使用 Padding ,这是一个非常简单的 Widget ,它只需要另一个 Widget 作为 childEdgeInsets 对象,就像你已经使用的那个 padding .

    这种在Flutter中的方法是非常有意的 . 你可以在Flutter的Gitter channel找到最近关于利弊的讨论 .

  • 20

    这是一个提供一些代码的补充答案 . 如接受的答案所述,您可以使用Padding小部件 . Flutter与Android或iOS不同,因为Padding是一个小部件而不是属性 . (它是Container的一个属性,但在内部它仍然是一个小部件 . )

    这是一个用Padding小部件包装的Text小部件 .

    Padding(
      padding: const EdgeInsets.all(8.0),
      child: Text("text"),
    );
    

    请参阅我更全面的答案here .

相关问题