Flutter 中的 Row 小部件:全面指南
在 Flutter 中,Row
是一个水平布局的小部件,用于将子控件沿着水平轴排列。Row
类似于 HTML 中的 div
标签,但仅限于水平布局。它非常适合用来创建行式布局,如表单输入、按钮组、标签栏等。
基础用法
Row
最基本的用法是将多个控件水平排列:
dart
Row(
children: <Widget>[
Container(width: 50.0, height: 50.0, color: Colors.red),
Container(width: 50.0, height: 50.0, color: Colors.blue),
// ... 更多的控件
],
)
主轴对齐
Row
的 mainAxisAlignment
属性用于控制子控件在主轴(水平轴)上的对齐方式:
开始对齐
dart
Row(
mainAxisAlignment: MainAxisAlignment.start,
// ... 子控件
)
居中对齐
dart
Row(
mainAxisAlignment: MainAxisAlignment.center,
// ... 子控件
)
两端对齐
dart
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
// ... 子控件
)
均匀分布
dart
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
// ... 子控件
)
交叉轴对齐
Row
的 crossAxisAlignment
属性用于控制子控件在交叉轴(垂直轴)上的对齐方式:
dart
Row(
crossAxisAlignment: CrossAxisAlignment.center,
// ... 子控件
)
间距和边距
Row
的 mainAxisSize
属性决定了 Row
的大小是否应该占据所有可用空间:
dart
Row(
mainAxisSize: MainAxisSize.min,
// ... 子控件
)
通过 padding
属性,可以为 Row
添加内边距:
dart
Row(
padding: EdgeInsets.all(8.0),
// ... 子控件
)
子控件间距
使用 spacing
属性来设置子控件之间的水平间距:
dart
Row(
spacing: 10.0,
children: List<Widget>.generate(5, (index) {
return Container(width: 50.0, height: 50.0, color: Colors.primaries[index % Colors.primaries.length]);
}).toList(),
)
子控件大小调整
使用 flex
属性来设置子控件在 Row
中的弹性比例:
dart
Row(
children: <Widget>[
Expanded(
flex: 1,
child: Container(color: Colors.red),
),
Expanded(
flex: 2,
child: Container(color: Colors.blue),
),
],
)
实例:水平表单
下面是一个使用 Row
创建水平表单的实例:
dart
Row(
children: <Widget>[
Expanded(
child: TextField(
decoration: InputDecoration(
labelText: 'Username',
border: OutlineInputBorder(),
),
),
),
SizedBox(width: 16.0),
Expanded(
child: TextField(
decoration: InputDecoration(
labelText: 'Password',
border: OutlineInputBorder(),
),
obscureText: true,
),
),
],
)
实例:按钮组
使用 Row
创建一组水平排列的按钮:
dart
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedButton(
onPressed: () {},
child: Text('Button 1'),
),
ElevatedButton(
onPressed: () {},
child: Text('Button 2'),
),
ElevatedButton(
onPressed: () {},
child: Text('Button 3'),
),
],
)
结语
Row
是 Flutter 中处理水平布局的核心小部件,它提供了丰富的对齐和间距选项,使得在 Flutter 应用中实现各种水平布局变得简单而高效。掌握 Row
的使用,可以帮助你创建出既美观又实用的布局界面。