Flutter升级后出现“No named parameter with the name 'kind'”错误求助
问题解决:No named parameter with the name 'kind'
错误原因
升级Flutter后,ScaleGestureRecognizer的构造函数已移除kind命名参数,你的代码调用父类构造时仍传递该参数,导致编译报错。
解决步骤
- 直接删除构造函数中多余的
kind相关代码,包括子类构造的参数声明和父类调用时的参数传递。 - 如果原本需要通过
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
相关产品推荐
相关产品推荐

