当前位置: 首页 > 知识库问答 >
问题:

颤振/飞镖:在小部件参数中将int转换为双精度不工作

孙嘉
2023-03-14

我正在尝试从文本小部件中以参数fontSize在flatter/dart中转换一个int以加倍,但我有一个例外:

“引发了另一个异常:“int”类型不是类型转换中“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(),
 );
...

省略号只是表示有更多的代码,它不是代码的一部分。

共有1个答案

温星华
2023-03-14

我没有得到任何错误。我可以给你一个避免错误的建议,就是在定义变量时在代码中使用数据类型。

 类似资料:
  • 我想用一个小数点和一个小数位的格式将任何双精度四舍五入为双精度,这样29575.347434将是2.3。 我试着用decimalFormat做这个,但当我试着我只得到了一个29575.3格式的字符串,带有一个,我不知道如何在保留值为双精度的同时去掉所有小数点。

  • 在flutter示例页面中,有一个名为“将数据发送到新屏幕”的项目。我对第65行的构造函数有一个重新保护的问题。

  • [![Plugins installed][1][1]我已经在android studio中安装了这些插件,并将C:\flatter\bin添加到系统环境变量中,但当我在PowerShell中运行flatter doctor时,它显示这些插件没有安装。我用的是Windows操作系统。

  • 我试图改变从API返回的日期字符串的格式。下面的日期格式输入字符串在java中工作正常,但在Dart中则不行。

  • 我试图得到一个double(由两个int的分数得到)作为我下面函数的返回值。 但结果总是错的,我得到的价值如: 预期结果应介于和 我的代码有什么问题! 谢谢