我有这个代码:
ListView(
children: episodes.map((Episode episode) {
return EpisodeRow(episide: episode)
);
我知道内置延迟加载的意图对 flutter 很有好处,但是我确实需要将每个小部件加载到屏幕上,因为每个小部件必须下载一个文件并将其存储起来,以便在设备没有互联网连接时使用。
为什么不在 initState 方法内部加载屏幕时简单地下载所有必需的文件,这样您就不需要担心延迟加载会在互联网连接中断时破坏用户体验。
解决方案是将
SingleChildScrollView
与 Column
小部件一起使用:
SingleChildScrollView(
child: Column(
children: episodes.map((Episode episode) {
return EpisodeRow(episide: episode);
}).toList(),
),
);
将
addAutomaticKeepAlives: false
设置在您的 ListView
中。
ListView(
addAutomaticKeepAlives: false,
children: []
)