概要
どうも、@daiki1003です!お久しぶりです!
今回は、ListView
内にどうやってSpacer
やExpanded
などのウィジェットを
配置するのかを解説していきたいと思います。
結論
先に結論から言うと、残念ながらListView
内に上記ウィジェットは入れることができません!(どーん)
代わりに、CustomScrollView
を使いましょう。
サンプルコードです。(main.dart
に貼り付けてそのまま比較できます)
Before
After
解説
目的を達成するだけなら、上記のサンプルだけで良いですね笑
が、それだけだと少し味気ないので解説や補足をしていきたいと思います。
SliverFillRemaining
SliverFillRemaining class - widgets library - Dart API
API docs for the SliverFillRemaining class from the widgets library, for the Dart programming language.
これを使うことで、画面の残りの領域を占有するウィジェットを作成することができます。
hasScrollBody
SliverFillRemaining
はhasScrollBody
というプロパティを持っています。
デフォルトではtrue
です。
これは、英語の意味通り「スクロール可能なコンテンツを保持しているかどうか」です。
上記公式ページのサンプルでhasScrollBody: false
を付けたり外したりして実行してスクロールすることで
わかっていただけるかなと思います。
false
にすることで、画面全体から黄色部分を除いた範囲がSliverFillRemaining
の描画範囲となります。
これはスクロールできません。
一方で、true
にすることで、青色部分が画面全体を覆い尽くすまでスクロールすることが可能になります。
最後に
いかがでしたでしょうか?
簡単ではありましたが、SliverFillRemaining
について解説をしました。
余白を埋める様なUIを作成する際は、CustomScrollView
を使うように心がけていきましょう💪
Twitterフォローお願いします
「次回以降も記事を読んでみたい!」「この辺分からなかったから質問したい!」
そんな時は、是非Twitter (@daiki1003)やInstagram (@ashdik_flutter)のフォローお願いします♪
Twitterコミュニティ参加お願いします
Twitterコミュニティ「Flutter lovers」を開設しました!参加お待ちしております😁
☕️ Buy me a coffee
また、記事がとても役に立ったと思う人はコーヒーを奢っていただけると非常に嬉しいです!
コメント
[…] 【Flutter】SpacerやExpandedをListView内に組み込むには? […]