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

Flutter升级后出现“No named parameter with the name 'kind'”错误求助

问题解决:No named parameter with the name 'kind'

错误原因

升级Flutter后,ScaleGestureRecognizer的构造函数已移除kind命名参数,你的代码调用父类构造时仍传递该参数,导致编译报错。

解决步骤

  1. 直接删除构造函数中多余的kind相关代码,包括子类构造的参数声明和父类调用时的参数传递。
  2. 如果原本需要通过kind限制手势接收的设备类型,新版本可通过重写acceptGesture方法实现类似逻辑。

修改后的代码示例

class PhotoViewGestureRecognizer extends ScaleGestureRecognizer {
  PhotoViewGestureRecognizer({
    this.hitDetector,
    Object? debugOwner,
    this.validateAxis,
    // 移除不再需要的kind参数声明
  }) : super(debugOwner: debugOwner); // 移除父类调用中的kind: kind

  final HitCornersDetector? hitDetector;
  final Axis? validateAxis;

  Map<int, Offset> _pointerLocations = <int, Offset>{};

  Offset? _initialFocalPoint;
  Offset? _currentFocalPoint;

  bool ready = true;

  // 示例:如果需要限制仅接收触摸设备的手势,可添加此方法
  @override
  void acceptGesture(int pointer) {
    final deviceKind = PointerEventConverter.kindForPointer(pointer);
    if (deviceKind != PointerDeviceKind.touch) {
      rejectGesture(pointer);
      return;
    }
    super.acceptGesture(pointer);
  }
}

内容的提问来源于stack exchange,提问作者Josue Martinez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 19:20:04