You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 20:16:04