6

可変サイズのウィジェットのリストを表示したい。

Flutter's Wrap は、私のレイアウトのニーズにぴったりです。

final List<dynamic> someItems; 

return SingleChildScrollView(
  child: Wrap(
    children: someItems.map((item) => _createTile(context, item)).toList(),
  ),
  scrollDirection: Axis.vertical,
);

ここに画像の説明を入力

しかし、致命的な問題として、Wrap は遅延してウィジェットを作成できません。たとえば、上の画像に表示されているタイル ウィジェットが 100 個未満で、データ リストの数が多い場合、Wrap は非表示のウィジェットも作成します。

// The result of taking a log once for each item when configuring Wrap with a list of 1000 data.
I/flutter ( 4437): create Widget 0
I/flutter ( 4437): create Widget 1
I/flutter ( 4437): create Widget 2
I/flutter ( 4437): create Widget 3
I/flutter ( 4437): create Widget 4
I/flutter ( 4437): create Widget 5
I/flutter ( 4437): create Widget 6
I/flutter ( 4437): create Widget 7
I/flutter ( 4437): create Widget 8
...
I/flutter ( 4437): create Widget 999

ListView と GridView は遅延してウィジェットを作成しますが、(少なくとも私が現在知っている限りでは) Wrap のようなウィジェットを自由にレイアウトすることはできません。

必要なレイアウトを実装する方法はありますか?

4

1 に答える 1