Flutter ExpansionTile内容溢出问题求助(附代码)
解决Flutter ExpansionTile溢出错误的方案
你的代码里ExpansionTile的子项用了ListView,虽然设置了shrinkWrap: true,但还是出现溢出问题,核心原因是ListView默认的滚动物理特性会引发约束冲突,导致子内容高度超出父容器可用空间。可以用以下两种方案解决:
方法一:给ListView添加非滚动物理特性
给ListView加上physics: NeverScrollableScrollPhysics(),让它完全根据子内容收缩高度,不再尝试滚动,避免约束冲突:
Expanded( child: ExpansionTile( title: customTextWidget(text: "Filter"), leading: const Icon(Icons.filter), children: [ ListView( shrinkWrap: true, physics: const NeverScrollableScrollPhysics(), // 新增该行 children: dealController .filterExpansionCHildrend .map((e) { return customTextWidget(text: e.title); }).toList(), ), ], ), )
方法二:用Column替代ListView
如果子项不需要滚动功能,直接用Column更轻量,也能规避ListView带来的约束问题:
Expanded( child: ExpansionTile( title: customTextWidget(text: "Filter"), leading: const Icon(Icons.filter), children: [ Column( children: dealController .filterExpansionCHildrend .map((e) { return customTextWidget(text: e.title); }).toList(), ), ], ), )
内容的提问来源于stack exchange,提问作者Ali Jawad
相关产品推荐
相关产品推荐

