Преобразуйте анимацию FadeTransition в flutter_hooks, верна ли эта реализация?
Пытаясь преобразовать анимацию виджета с отслеживанием состояния в реализацию флаттер-хуков, я хотел бы знать, правильно ли я это делаю.
Это мой SatatefullWidget:
class FadeTransitionGlow extends StatefulWidget {
@override
State<StatefulWidget> createState() => _Fade();
}
class _Fade extends State<FadeTransitionGlow> with TickerProviderStateMixin {
AnimationController animation;
Animation<double> _fadeInFadeOut;
@override
void initState() {
super.initState();
animation = AnimationController(
vsync: this,
duration: Duration(seconds: 1),
);
_fadeInFadeOut = Tween<double>(begin: 0.0, end: 1.0).animate(animation);
animation.addStatusListener((status) {
if (status == AnimationStatus.completed) {
animation.reverse();
} else if (status == AnimationStatus.dismissed) {
animation.forward();
}
});
animation.forward();
}
@override
Widget build(BuildContext context) {
return FadeTransition(
opacity: _fadeInFadeOut,
child: Container(
color: Colors.red,
width: 200.0,
height: 200.0,
));
}
}
Вот моя реализация flutter_hook:
class _HookFade extends HookWidget {
@override
Widget build(BuildContext context) {
var controller =
useAnimationController(duration: Duration(milliseconds: 500));
Animation<double> _fadeInFadeOut =
Tween<double>(begin: 0.0, end: 1.0).animate(controller);
controller.addStatusListener((status) {
if (status == AnimationStatus.completed) {
controller.reverse();
} else if (status == AnimationStatus.dismissed) {
controller.forward();
}
});
controller.forward();
return FadeTransition(
opacity: _fadeInFadeOut,
child: Container(
color: Colors.red,
width: 200.0,
height: 200.0,
));
}
}
Любой совет по улучшению, если он не является правильным, очень хорошо. Большое спасибо.