H.K*_*Kim 6 flutter flutter-gridview flutter-listview
我想显示大小可变的小部件列表。
Flutter 的 Wrap 非常适合我的布局需求。
final List<dynamic> someItems;
return SingleChildScrollView(
child: Wrap(
children: someItems.map((item) => _createTile(context, item)).toList(),
),
scrollDirection: Axis.vertical,
);
Run Code Online (Sandbox Code Playgroud)
但是一个致命的问题是,Wrap 不能懒惰地创建小部件。例如,如果上图中显示的 Tile 小部件少于 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
Run Code Online (Sandbox Code Playgroud)
ListView 和 GridView 懒惰地创建小部件,但是(至少就我目前所知)它们不能随意布置像 Wrap 这样的小部件。
有没有办法实现我想要的布局?
小智 2
尝试这个:
Wrap(
children: someItems.map((item) => _createTile(context, item)).toList().cast<Widget>(),
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
619 次 |
| 最近记录: |