Flutter中嵌套于SingleChildScrollView的ListView.separated是否仍支持懒加载?
问题解答
你的这两个ListView.separated不会按需懒加载,页面初始化时就会一次性创建所有列表项。
原因很明确:当设置shrinkWrap: true时,ListView需要根据所有子组件的总尺寸来计算自身高度,这就要求它必须先构建每一个列表项才能确定整体大小,直接失去了懒加载的核心特性——懒加载的前提是ListView基于父组件给出的固定高度约束,只构建当前视口内的item,避免一次性加载全部内容。
如果想要实现整体滚动同时保留两个列表的懒加载,更合适的方案是使用CustomScrollView,把两个列表分别用SliverList(配合SliverChildBuilderDelegate)实现,这样所有内容处于同一个滚动容器中,每个SliverList依然能维持懒加载的特性。
内容的提问来源于stack exchange,提问作者gemixin
相关产品推荐
相关产品推荐

