くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

FlutterのLayoutをざっとまとめてみた

Flutterのレイアウト関連、調べてもすぐ忘れるので、
ざっとまとめてみた(*´ω`*)

公式ドキュメントはこのあたり。

Android開発者向けのガイドだと、
LinearLayoutRowColumnWidgetに相当」
などが書いてあるので結びつけやすいかも。

Layout

さらに3つに分かれてる。

  • 子が複数: Multi-child layout widgets
  • 子が一つ: Single-child layout widgets
  • Sliver用: Sliver widgets

Sliver用は一旦、後回し。

子が複数 / Multi-child

基本

  • Column
    • 縦に並べる
  • Row
    • 横に並べる
  • Wrap
    • Column/Rowのoverflow対応版
  • ListView
    • スクロールできるリスト
  • GridView
    • グリッドで並べる。スクロール可
  • Table
    • スクロールできないGrid
  • Stack
    • 上に重ねる配置
  • IndexedStack
    • index付きのStack

上級向け

  • LayoutBuilder
    • Widgetの制約(widthなど)を参照できるBuilder。レスポンシブ対応など
  • Flow
    • 1方向のLayout。FlowDelegateを使ってカスタマイズ
  • CustomMultiChildLayout
    • MultiChildLayoutDelegateをつかってフルカスタマイズ
  • ListBody
    • 直接使わないっぽい?

子が1つ / Single-child

汎用/組み合わせ

  • Container
    • padding/constraints/alignなどを一括で設定できる

配置

  • Align
    • 右寄せ/左寄せなど。サイズ基準
  • Baseline
    • ベースライン基準の配置。Textなど
  • Center
    • 中央寄せ
  • Padding
    • 余白/padding

サイズ

制約

トランスフォーム

  • Transform
    • 回転や移動など。csstransform的なの

上級者向け


以上!! とりあえず、ざっとながめてみたけど、いろいろあるね(*´ω`*)