Android ではmatch_parent
、wrap_content
ウィジェットに含まれるコンテンツに応じて、親を基準にしてウィジェットのサイズを自動的に変更するために使用されます。
Flutter では、デフォルトですべてのウィジェットが に設定されているようですが、 と を親とwrap_content
同じにするにはどうすれば変更できますか?width
height
ベストアンサー1
注: 親ウィジェットのデフォルトの動作は、利用可能なすべてのスペースを子で埋めることです。Scafold>body:Container(sized) は Scafold>body:Center>Container(Sized) とは異なります。詳細については、こちらを参照してください。https://docs.flutter.dev/ui/layout/constraints
これを理解すると、ウィジェットがどのように機能するかという概念がすべて明らかになります。制約は下に移動し、サイズは大きくなり、親は位置を設定します。
ちょっとしたトリックでできます: 次のような要件があるとします: (幅、高さ)
ラップコンテンツ、ラップコンテンツ:
//use this as child
Wrap(
children: <Widget>[*your_child*])
マッチ_親、マッチ_親:
//use this as child
Container(
height: double.infinity,
width: double.infinity,child:*your_child*)
親に一致、コンテンツをラップ:
//use this as child
Row(
mainAxisSize: MainAxisSize.max,
children: <Widget>[*your_child*],
);
コンテンツをラップ、親と一致:
//use this as child
Column(
mainAxisSize: MainAxisSize.max,
children: <Widget>[your_child],
);
注: ウィジェットがどのように子を配置して再描画するかを理解するには、パッケージを参照してください。ウィジェットソースコードは、ネストされたウィジェットツリーを削減し、パフォーマンスを向上させるために開発しました。