class pin extends StatefulWidget {
@override
_PinState createState() => _PinState();
}
class _PinState extends State<pin> with TickerProviderStateMixin {
AnimationController _controller;
Animation<double> _animation;
bool error = false;
@override
void initState() {
super.initState();
this._controller = AnimationController(
duration: const Duration(milliseconds: 1000), vsync: this);
this._animation =
Tween(begin: 0.0, end: 1.0).animate(CurvedAnimation(
parent: _controller,
curve: Curves.easeIn,
));
}
@override
Widget build(BuildContext context) {
if(this.error) {
this.error = false;
_controller.forward();
}
return Container(
child: if (this.error)
Container(
child: FadeTransition(
opacity: _animation,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Padding(
padding: const EdgeInsets.all(8.0),
child: Image.asset(assets/images/sad_face.png),
),
],
),
),
),
),
}
}
W powyższym kodzie FadeTransition()
widget jest animowana, gdy aplikacja jest uruchomiona pierwsza. a widoczność z FadeTransition()
przełączany jest przez error
zmienną. ale gdy następnym razem FadeTransition()
widget jest widoczny nie jest animowany?
czego brakuje, kiedy przełączanie FadeTransition()
widget powinien być animowane za każdym razem, gdy pojawia się!