Open7

Compose Layout

ykwsykws

Modifier.layout は Measurable と Constraints を受け取り、結果を MeasureResult として返し、カスタムレイアウトが作れるようになっている

https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/Measurable

https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Constraints

前述の Modifier.layout 自体は Modifier なので、結果は Modifier として返す。
ラムダの中の結果が MeasureResult

ykwsykws

大事そうなこと

Compose UI では、マルチパス測定は許可されていません。つまり、さまざまな測定構成を試すために、レイアウト要素でその子要素を複数回測定することはできません。

スコープの使用により、子の測定と配置を行えるタイミングが決まります。レイアウトは測定パスとレイアウトパスの実行中のみ測定でき、子の配置はレイアウトパスの実行中に、測定した後でのみ行うことができます。この操作は、Compose スコープ(MeasureScope や PlacementScope など)によりコンパイル時に適用されます。