首页 > 解决方案 > 参数类型“图像?” 无法将参数类型分配给“Widget”,因为“Image?”

问题描述

更新颤振版本后出现此错误,

在更新之前它运行良好。

The argument type 'Image?' can't be assigned to the parameter type 'Widget' because 'Image?' is nullable and 'Widget' isn't.

我怎样才能解决这个问题??

  Widget levelBtn = FlatButton(
    onPressed: (){
      setState((){
        level++;
        if (level == 2){level = 0;}
      });
    },
    padding: EdgeInsets.all(0.0),
    child: ((){
      if (level == 0){
        return Image.asset("images/LL_BeginnerJa.png",height:constrain.minHeight /414 * 30);
                    
      } else if (level == 1){
        return Image.asset("images/LL_NormalJa.png",height:constrain.minHeight /414 * 30);
      
      } 
    })()
  );

标签: flutter

解决方案


你能试试这个语法并告诉我它是否有效吗?

child: level == 0 ? Image.asset("images/LL_BeginnerJa.png",height:constrain.minHeight /414 * 30) : level == 1 ? Image.asset("images/LL_NormalJa.png",height:constrain.minHeight /414 * 30) : SizedBox(),

整个代码

Widget levelBtn = FlatButton(
  onPressed: () {
    setState((){
      level++;
      if (level == 2){level = 0;}
    });
  },
  padding: EdgeInsets.all(0.0),
  child: level == 0
      ? Image.asset("images/LL_BeginnerJa.png",
          height: constrain.minHeight / 414 * 30)
      : level == 1
          ? Image.asset("images/LL_NormalJa.png",
              height: constrain.minHeight / 414 * 30)
          : SizedBox(),
);

推荐阅读