【发布时间】:2020-09-11 05:16:48
【问题描述】:
我正在尝试在 Text Widget 的 param fontSize 处将 int 转换为双倍的颤振/飞镖,但我有这个例外:
“抛出了另一个异常:类型'int'不是类型转换中'double'类型的子类型”
我一直按照这里的说明进行操作:Why can't I convert a Number into a Double?,但这还不行。
这是我的组件小部件中的文本:
class ButtonLogin extends MaterialButton {
ButtonLogin({this.fontSize, ...});
final fontSize;
...
@override
Widget build(BuildContext context){
double fontSizeDouble = (fontSize as num) as double;
...
Text(
label,
style: TextStyle(
fontSize: fontSizeDouble,
color: labelColor,
fontWeight: FontWeight.bold
),
),
...
}
从组件中我通过 param fontSize 传递一个 Int 值,如下所示:
...
ButtonLogin(
backgroundColor: ColorsCustom.loginScreenUp,
labelColor: Colors.white,
label: 'Back to other session?',
fontSize: 16,
mOnPressed: () => _login(),
);
...
省略号只是表示有更多代码,它不是代码的一部分。
【问题讨论】:
-
您好,我没有收到任何错误。我可以给您的避免错误的建议是在定义变量时在代码中使用数据类型。
-
在使用号码之前尝试使用
.toDouble()? -
感谢@camillo777,我刚刚在 final 之后添加了 double 类型,如下所示:“final double fontSize”,这样就可以了。
-
@JuniorMachado 我很高兴它有效,如果它对您有帮助,您可以按向上箭头说它有用吗?谢谢!
-
@camillo777 我试过了,但我得到了回报:“你不能为自己的帖子投票”,我做错了什么? :(
标签: flutter dart casting int double