设置子控件间距
- 使用SizedBox保持固定间距
Row(
children: <Widget>[
Text("1"),
SizedBox(width: 50), // 50宽度
Text("2"),
],
)
- 使用Spacer填充尽可能大的空间
Row(
children: <Widget>[
Text("1"),
Spacer(), // use Spacer
Text("2"),
],
)
- 使用mainAxisAlignment对齐方式控制彼此间距
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly, //元素与空白互相间隔
children: <Widget>[
Text("1"),
Text("2"),
],
)
- 如果不用行的话,还可以使用Wrap并指定spacing
Wrap(
spacing: 100, // set spacing here
children: <Widget>[
Text("1"),
Text("2"),
],
)
- 同样是使用Wrap,设置spaceAround
Wrap(
alignment: WrapAlignment.spaceAround, // 空白包围住元素
children: <Widget>[
Text("1"),
Text("2"),
],
)
设置子控件分别左对齐和右对齐
- 使用spaceBetween对齐方式
new Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
new Text("left"),
new Text("right")
]
);
- 中间使用Expanded自动扩展
Row(
children: <Widget>[
FlutterLogo(),//左对齐
Expanded(child: SizedBox()),//自动扩展挤压
FlutterLogo(),//右对齐
],
);
- 使用Spacer自动填充
Row(
children: <Widget>[
FlutterLogo(),
Spacer(),
FlutterLogo(),
],
);
- 使用Flexible
Row(
children: <Widget>[
FlutterLogo(),
Flexible(fit: FlexFit.tight, child: SizedBox()),
FlutterLogo(),
],
);
效果:
原文参考1
原文参考2