Flutter/UI/横縦並び・比率
提供: 初心者エンジニアの簡易メモ
横並び
Row(children: <Widget>[
Expanded(child: Container(
padding: EdgeInsets.all(20.0),
child: Text("1"),
color: Colors.grey,
),),
Expanded(child: Container(
padding: EdgeInsets.all(20.0),
child: Text("2"),
color: Colors.red,
),),
Expanded(child: Container(
padding: EdgeInsets.all(20.0),
child: Text("3"),
color: Colors.green,
),),
Expanded(child: Container(
padding: EdgeInsets.all(20.0),
child: Text("4"),
color: Colors.blue,
),),
],),
上の20は高さ。
参考:https://nzigen.com/flutter-reference/2018-04-18-row-expanded.html
縦並び
Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Text('taro'),
Text('jiro'),
Text('saburo')
],
),
参考:https://dev.classmethod.jp/smartphone/flutter_column_row_1/
左詰め
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
上詰め
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
これは違う?
比率
横並びの比率をflexで入れる。
Row(
children: [
Expanded(
flex: 2,
child: Container(
color: Colors.blue,
child: Text('taro'),
),
),
Expanded(
flex: 3,
child: Container(
color: Colors.green,
child: Text('jiro'),
),
),
Expanded(
flex: 1,
child: Container(
color: Colors.orange,
child: Text('saburo'),
),
),
],
),
参考:https://qiita.com/kalupas226/items/5aa41ca409730606000f
1つの部品と残りの部品の比率
Row(
children: [
Flexible(
flex: 1,
child: Container(
color: Colors.blue,
child: Text('taro'),
),
),
Flexible(
flex: 10,
child: Container(
color: Colors.green,
child: Text('jiro'),
),
),
],
),
縦方向に比率表示
これはエラーが出るみたい・・・。
Column(
children: <Widget>[
Expanded(
flex: 3,
child: Container(
color: Colors.green,
),
),
Expanded(
flex: 2,
child: Container(
color: Colors.red,
),
)
],
),
参考:https://note.com/norisato/n/n9ae6e24b52a7
左右中央
Center(
child: Column(
children: <Widget>[
Text("hogehoge"),
],
),
上下左右中央
Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Text("hogehoge"),
],
),
),
https://qiita.com/sekitaka_1214/items/03255fd9f61685503af3
上下左右中央でloading
Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Container(
margin: const EdgeInsets.only(top: 8.0),
width: 32.0,
height: 32.0,
child: const CircularProgressIndicator(),
),
],
),
);
