Flutterでコンテナをグリッドのように配置

グリッド

Flutterでコンテナを5行7列のグリッドのように配置する方法について紹介します。

画面のサイズに合わせて調整できるようにします。

今回の手順は以下のとおりです。

完成形のイメージ

完成形のイメージです。

flutterグリッド 大
flutterグリッド 小

なお、番号と背景色については紹介を省略します。

コンテナの構成

コンテナの構成について紹介します。

Column

行の構成です。今回は5行作成します。

Flutterdで行を設定する場合はColumnWidgetを使います。

    
・・・略・・・
  body: Column(
    children: <Widget>[
      Container(),
      Container(),
      Container(),
      Container(),
      Container(),                      
    ]
  )
    
  

なお縦方向に広げるために、Expandedを利用します

    
・・・略・・・
  body: Column(
    children: <Widget>[
      Expanded(
        child: Container(),
      ),
      Expanded(
        child: Container(),
      ),
      Expanded(
        child: Container(),
      ),
      Expanded(
        child: Container(),
      ),
      Expanded(
        child: Container(),
      ),                   
    ]
  )
    
  

Row

列を構成します。今回は7列作成します。

列はRowWidgetを使います。

    
・・・略・・・
      Expanded(
        child: Container(
          child: Row(
            children: <Widget>[
              Container(),
              Container(),
              Container(),
              Container(),
              Container(),
              Container(),
              Container(),            
          ),
        ),
      ),
・・・略・・・
    
  

ここでも、Expandedを利用します。

    
・・・略・・・
      Expanded(
        child: Container(
          child: Row(
            children: <Widget>[
              Expanded(
                child: Container(),
              ),
              Expanded(
                child: Container(),
              ),
              Expanded(
                child: Container(),
              ),
              Expanded(
                child: Container(),
              ),
              Expanded(
                child: Container(),
              ),
              Expanded(
                child: Container(),
              ),
              Expanded(
                child: Container(),
              ),
            ]
          ),
        ),
      ),
・・・略・・・
    
  

また、高さを広げる場合はheight: double.infinityを使います。

    
・・・略・・・
      Expanded(
        child: Container(
          child: Row(
            children: <Widget>[
              Expanded(
                child: Container(
                  height: double.infinity
                ),
              ),
              Expanded(
                child: Container(
                  height: double.infinity
                ),
              ),
              Expanded(
                child: Container(
                  height: double.infinity
                ),
              ),
              Expanded(
                child: Container(
                  height: double.infinity
                ),
              ),
              Expanded(
                child: Container(
                  height: double.infinity
                ),
              ),
              Expanded(
                child: Container(
                  height: double.infinity
                ),
              ),
              Expanded(
                child: Container(
                  height: double.infinity
                ),
              ),
            ]
          ),
        ),
      ),
・・・略・・・
    
  

まとめ

Flutterでコンテナを5行7列のグリッドのように配置する方法について紹介しました。

Column、Row、ExpandedのWidgetを使うことで簡単に伸張性のある画面ができます。

コメント

0 件のコメント:

コメントを投稿

コメントをお待ちしています。