[Flutter] Center, Column, Row, Container のレイアウトWidget

レイアウトを整えるためのWidgetで基本的なものとして
Center, Column, Row, Container があります
使い方を確認しておきましょう




Layout Widget

 

デバイスの画面サイズは様々なので、基本は中央から上下左右に配置するような
レイアウト用のWidgetが用意されています

  • Center
    • 中央配置
  • Column
    • 縦配置
  • Row
    • 横配置
  • Container
    • 子Widgetの配置、色、サイズなどを個別にカスタマイズ

 

目次
1. Center
2. Column
3. Row
4. Container
 

Center

 

中央配置です

VScodeのテンプレートのEmpty Application でプロジェクトを作成すると Center が使われているので、それを見るとわかりやすいです

main.dart

中央に Hello World! が表示されています

1x1.trans - [Flutter] Center, Column, Row, Container のレイアウトWidget

以降、この基本コードでそれぞれ確認してみましょう

 

Column

 

上のコードで、Centerの代わりにColumnを入れ
Textを3つ配置するために
chirldren: <Widget>[ ],
として変更します

確かにTextは縦配置になりましたが、左上の隅によってしまいました

1x1.trans - [Flutter] Center, Column, Row, Container のレイアウトWidget

ここで、mainAxisAlignment を使って調整してみます
mainAxisAlignment はこの Column のケースでは縦軸方向でのアラインメントです

MainAxisAlignment.center を設定してみます
確かに縦軸方向でセンターに配置されましたが
左に寄ったままです

1x1.trans - [Flutter] Center, Column, Row, Container のレイアウトWidget

Centerを使って中奥に寄せてみます
bodyをCenterにして、その子にColumnを設定します

とりあえず見やすくなりました

1x1.trans - [Flutter] Center, Column, Row, Container のレイアウトWidget

 

Row

 

Rowを使って横配置をしてみます
Columnで使ったコードのColumnをRowに変えるだけです
みやすくするためにHello World! の後ににスペースを入れました

横方向に3つTextが配置されました

1x1.trans - [Flutter] Center, Column, Row, Container のレイアウトWidget

 

Container

 

Container を上のColumnやRowの代わりに設定します
Container では縦横を指定しないと全画面になってしまいます

300×300のボックス領域を青で色付けしています
Textは左上に張り付いていますが、これはAlingmentを使うと改善されます

1x1.trans - [Flutter] Center, Column, Row, Container のレイアウトWidget

配色をARGBでも設定できるので背景色とText文字色も変更してみます

このようになりました

1x1.trans - [Flutter] Center, Column, Row, Container のレイアウトWidget

 
 
 
References:
Center class
Column class
Row class
Container class
Alignment class
mainAxisAlignment

シェアする

  • このエントリーをはてなブックマークに追加

フォローする