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

Flutter Stepper使用controlsBuilder报参数类型不匹配错误如何解决

问题原因

这个报错是两个项目的Flutter版本不一致导致的API兼容问题。高版本Flutter对Stepper组件的controlsBuilder参数定义做了空安全适配,要求入参中的onStepCancel、onStepContinue回调为可空类型,你当前代码里写的是非空必传类型,和官方定义的参数类型不匹配,因此抛出类型错误。

解决方法

直接修改controlsBuilder回调的参数类型,将两个回调标记为可空即可,修改后的代码如下:

controlsBuilder: (BuildContext context, {VoidCallback? onStepContinue, VoidCallback? onStepCancel}) {
  return Row(
    children: <Widget>[
      TextButton(
        onPressed: onStepContinue,
        child: const Text('下一步'),
      ),
      TextButton(
        onPressed: onStepCancel,
        child: const Text('離開'),
      ),
    ],
  );
},

如果修改后仍然报错,说明你的Flutter版本更高,官方已经将controlsBuilder的入参调整为单个ControlsDetails类型,替换为以下写法即可:

controlsBuilder: (BuildContext context, ControlsDetails details) {
  return Row(
    children: <Widget>[
      TextButton(
        onPressed: details.onStepContinue,
        child: const Text('下一步'),
      ),
      TextButton(
        onPressed: details.onStepCancel,
        child: const Text('離開'),
      ),
    ],
  );
},

内容的提问来源于stack exchange,提问作者Hsu Mark

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 05:57:01