Flutter实现ListView融入父视图,与其他内容整体滚动
解决Flutter模态视图中ListView与其他内容一起滚动的问题
要让ListView完全展开并跟随父滚动视图一起滚动,只需要对taxInfoListView方法里的ListView.builder做两处修改:
- 保持
shrinkWrap: true,让ListView根据子项内容自动计算高度,而非占用固定空间 - 添加
physics: const NeverScrollableScrollPhysics(),禁用ListView自身的滚动能力,把滚动控制权交给外层的SingleChildScrollView
修改后的taxInfoListView代码如下:
Widget taxInfoListView() { return ListView.builder( itemCount: taxResidencyList.length, scrollDirection: Axis.vertical, shrinkWrap: true, // 禁用ListView自身滚动,交给父ScrollView统一处理 physics: const NeverScrollableScrollPhysics(), itemBuilder: (context, index) => TaxDetailItem( taxResidence: taxResidencyList[index], textEditingController: controllers[index], countrySelectionChanged: getUpdatedCountryCode, index: index, taxCountryRemove: removeTaxCountry), ); }
修改完成后,模态视图里的标题、列表和复选框区域会作为一个整体,在SingleChildScrollView的控制下同步滚动,不会再出现ListView独立滚动的情况。
内容的提问来源于stack exchange,提问作者mars_dev
相关产品推荐
相关产品推荐

