Flutter:Style.textStyle重写父类方法参数不匹配报错求助
修复Style类重写textStyle方法的参数不匹配错误
错误原因
你的Style类重写StyleHook的textStyle方法时,参数列表与父类方法不匹配:
- 父类
StyleHook.textStyle的方法签名为TextStyle textStyle(Color color, String?),要求传入两个参数 - 你定义的
Style.textStyle仅包含一个Color参数,不符合重写规则,因此触发重写不合法的错误
解决方案
修改textStyle方法的参数列表,使其与父类完全一致。如果暂时不需要使用第二个参数,可直接接收参数而不做处理,或设置为可选参数:
方法1:完全匹配父类参数签名
class Style extends StyleHook { @override double get activeIconSize => 28; @override double get activeIconMargin => 10; @override double get iconSize => 20; @override TextStyle textStyle(Color color, String? text) { // 可根据业务需求使用text参数,暂不需要则直接忽略 return TextStyle(color: color); } }
方法2:将第二个参数设为可选位置参数
若父类的第二个参数为可选类型,也可写成可选参数形式(需与父类定义保持一致):
class Style extends StyleHook { @override double get activeIconSize => 28; @override double get activeIconMargin => 10; @override double get iconSize => 20; @override TextStyle textStyle(Color color, [String? text]) { return TextStyle(color: color); } }
额外提示
你的Flutter版本为3.0.0,但pubspec.yaml中配置的SDK版本范围是>=2.7.2 <3.0.0,版本范围不兼容,建议将SDK版本调整为>=3.0.0,避免后续出现其他版本适配问题。
内容的提问来源于stack exchange,提问作者Muhammad Arafat
相关产品推荐
相关产品推荐

