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

Flutter主ListView无法响应鼠标滚动问题求助

解决Row中ListView滚动异常的问题

核心问题出在Row的布局约束上:你的Row设置了crossAxisAlignment: CrossAxisAlignment.center,这会让右侧承载ListView的SizedBox高度被限制为Row内最高子组件的高度,而ListView需要明确的、足够的高度约束才能正常触发滚动逻辑——哪怕你移除Scrollbar、替换滚动组件,只要高度约束的问题没解决,滚动异常就会持续。

试试这两种修复方案:

方案1:调整Row的交叉对齐方式并给SizedBox添加高度约束

return Scaffold(
  body: Row(
    mainAxisAlignment: MainAxisAlignment.start,
    crossAxisAlignment: CrossAxisAlignment.stretch, // 改为stretch,让子组件填满Row高度
    children: [
      SideMenu(context1: context),
      SizedBox(
        width: size.width > 1000 ? size.width * 0.825 : size.width * 0.775,
        height: size.height, // 让SizedBox占满屏幕高度
        child: model.sideList.elementAt(model.getIndex).screen,
      ),
    ],
  ),
);

方案2:用Expanded替代固定宽度SizedBox(更灵活)

如果不需要固定宽度,用Expanded让右侧区域自动占据Row的剩余空间,同时获取完整的高度约束:

return Scaffold(
  body: Row(
    mainAxisAlignment: MainAxisAlignment.start,
    crossAxisAlignment: CrossAxisAlignment.stretch,
    children: [
      SideMenu(context1: context),
      Expanded(
        child: model.sideList.elementAt(model.getIndex).screen,
      ),
    ],
  ),
);

额外检查点:

  • 确保你的ListView没有设置shrinkWrap: true,这个属性会让ListView高度包裹内容,直接失去滚动能力;
  • 检查ListView的physics属性,不要设置NeverScrollableScrollPhysics,保持默认的AlwaysScrollableScrollPhysics即可。

内容的提问来源于stack exchange,提问作者Noman Salhab

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 09:45:32