我有一个关于比较ListView
和包含ListBody
的SingleChildScrollView
的问题。表面上,这两个结果看起来是一样的。但我很好奇这两个在功能上是否有区别。在我看来,这可能是效率或性能的一部分,但我不确定。提前感谢。
SingleChildScrollView + ListBody
final items = List.generate(100, (index) => index).toList();
SingleChildScrollView(
child: ListBody(
children: items.map((e) => Text('$e')).toList(),
)
)
列表视图
final items = List.generate(100, (index) => index).toList();
ListView(
children: items.map((e) => Text('$e')).toList(),
)
2条答案
按热度按时间agxfikkp1#
我知道一个区别:
今天我修正了一个bug,涉及到ListView的延迟加载功能,我改到ListBody,修正了一下。
我有一个应用程序,使用flutter-markdown,我使用ListView渲染许多markdown片段,像这样:
我使用flutter_markdown.MarkdownElementBuilder来解析Markdown大纲(TOC内容表),但是flutter_markdown ast逻辑只在Markdown.build()上运行,所以,如果你不把ListView页面拉到底部,你就不会得到完整的大纲,bug显示:bug image
我用ListBody修复了这个bug
修复bug后:bug fix image
此外,如果您正在浏览一个长页面,向下滚动时可能会有一些卡住(使用ListView),因为ListView在下拉期间会不时加载计算。
jaql4c8m2#
我必须说我实际上从来没有听说过小部件
ListBody
,但是当你检查它的源代码时,你可以看到评论:所以flutter的开发者们并不推荐使用它。我也不知道两者的确切区别是什么,所以我想我并没有真正回答你的问题。也许其他人可以,但你也可以自己研究源代码,因为它都是开源的。