emmm…
一直对于Flutter有个认知,那就是 参数都得写double
对于其重要性不以为然,反正既然这么说,我照做就是了.
于是…
type’_AnimatedEvaluation’ is not a subtype of type ‘Animation’
在写一个小demo,关于 Splash页面,透明度渐变显示的一个效果.
代码如下:
import 'package:flutter/material.dart';
import 'home_page.dart';
class SplashView extends StatefulWidget {
@override
_SplashViewState createState() => _SplashViewState();
}
class _SplashViewState extends State<SplashView> with SingleTickerProviderStateMixin {
AnimationController _mController;
Animation _mAnimation;
@override
void initState() {
super.initState();
_mController = AnimationController(
vsync: this, duration: Duration(milliseconds: 5000));
_mAnimation = Tween(begin: 0, end: 1.0).animate(_mController);
_mAnimation.addStatusListener((status) {
if (status == AnimationStatus.completed) {
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(builder: (context) => HomePage()),
(predicate) => predicate == null);
}
});
_mController.forward();
}
@override
void dispose() {
super.dispose();
_mController.dispose();
}
@override
Widget build(BuildContext context) {
return FadeTransition(
opacity: _mAnimation,
child: Image.network(
"https://cn.bing.com/th?id=OIP.QrNc3F1c8Ki1bUfR5oxqXwHaMW&pid=Api&rs=1&p=0",
fit: BoxFit.fill,
),
);
}
}
预期效果是:
显示一张图片,5秒时间,从不可见到完全可见,然后跳转到首页.
但是发现会在Splash页面报错,提示
type'_AnimatedEvaluation<num>' is not a subtype of type 'Animation<double>'
AnimationEvaluation, Animation,看着没问题啊.
num, double? 瞬间想起了那个参数都得写double的忠告.
难道把0 改成 0.0
彻底吸取教训了,
下次记得一定写double,即使是 0也不放过.