0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

flutter などのUIにおけるウィジェット配置の考え方について

0
Posted at

課題・背景

HTML (Javascript) から FlutterなどのGUI作成に入門した際に、Block要素、inline要素のような概念でウィジェットのサイズ決定を考えてしまい、うまくアイテムを配置できなかった。

ウィジェット配置の考え方

Flutter / Kotlin (android GUI) では、 親が子に「どれくらいの大きさなら許容するか」という制約を渡し、子がその範囲で自分のサイズを決めて返す 。つまり、子どもは親の指定するサイズを超えることはできない。

1. 親の制約

制約は、以下の4つの値として渡される。
(この部分を誤解していた。親は子どもの最大サイズを規定するが、同時に 最小サイズも規定する 。つまり、子どもは小さければいいということではない。)

親から子どもに伝える: 
-   あなたの最小の大きさは (min_x, min_y) です。
-   あなたの最大の大きさは (max_x, max_y) です。
  • 最小サイズ === 最大サイズであるとき、制約がタイト (tight) であるという。この場合、子どもはサイズを決定されている
  • 最小サイズが 0 × 0 であるとき、制約がルーズ (loose) であるという

2. 子どもの決定

子どもは上記制約の中で、自身のサイズを決定して返却する。
基本的に親の希望が優先されるため、無理に圧縮されたり引き伸ばされることがある。このときは先祖ウィジェットの設定が悪い。

具体例

なにか作って書こうとしましたが、以下のサイトにわかりやすい例があったので、実際の感じはこちらで確認ください...

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?