我正在尝试在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 回答
你可以使用
Padding
,这是一个非常简单的Widget
,它只需要另一个Widget
作为child
和EdgeInsets
对象,就像你已经使用的那个padding
.这种在Flutter中的方法是非常有意的 . 你可以在Flutter的Gitter channel找到最近关于利弊的讨论 .
这是一个提供一些代码的补充答案 . 如接受的答案所述,您可以使用Padding小部件 . Flutter与Android或iOS不同,因为Padding是一个小部件而不是属性 . (它是Container的一个属性,但在内部它仍然是一个小部件 . )
这是一个用Padding小部件包装的Text小部件 .
请参阅我更全面的答案here .