facebook twitter hatena line email

Flutter/UI/横縦並び・比率

提供: 初心者エンジニアの簡易メモ
2019年11月29日 (金) 16:37時点におけるAdmin (トーク | 投稿記録)による版 (縦方向に比率表示)

移動: 案内検索

横並び

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/

比率

横並びの比率を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