1、RenderBox box = context.findRenderObject()
Error: A value of type 'RenderObject?' can't be assigned to a variable of type 'RenderBox'.
错误的提示是产生了从 dynamic 到 RenderBox 的不正确的隐式转换,隐式转换失败了。解决方案是在报错的位置人为进行强转:
RenderBox box = context.findRenderObject() as RenderBox;
2、image: DecorationImage(image: imageUrl != null ? NetworkImage(imageUrl!)
: AssetImage(imageAssets!) )
The argument type 'Object' can't be assigned to the parameter type 'ImageProvider<Object>'.
无法将参数类型“Object”分配给参数类型“ImageProvider ”
AssetImage和NetworkImage,两个对象的类型不相同。虽然AssetImage和 NetworkImage都是 ImageProvider的子类,但是dart在此处不会自动处理,需要手动用“as”作强制类型转换为ImageProvider。
解决:
image: DecorationImage(
image: imageUrl != null
? NetworkImage(imageUrl!)
: AssetImage(imageAssets!) as ImageProvider
),
3、声明Timer
// 声明方式
Timer _timer;
error: Non-nullable instance field '_timer' must be initialized.
因flutter2.0添加了Sound null safety空安全声明,目的是通过显式声明可能为null的变量
解决:
Timer? _timer;
if (_timer != null && _timer!.isActive) {
_timer!.cancel();
}
4、Container设置圆角报错:无法同时提供颜色和装饰
错误提示:
Cannot provide both a color and a decoration
To provide both, use "decoration: BoxDecoration(color: color)".
字面意思是不能同时给Container
和BoxDecoration
设置颜色,如果需要请使用BoxDecoration
的颜色
Container(
width: screenWidth(context) - 60,
height: 34,
margin: EdgeInsets.only(left: 10),
// color: Colors.yellow, 隐藏后解决问题了
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(6.0)
),
),