Анимация играет решающую роль в создании визуально привлекательных и интерактивных пользовательских интерфейсов в приложениях Flutter. Разработчику важно иметь контроль над жизненным циклом анимации, в том числе знать, когда анимация завершена. В этой статье мы рассмотрим различные методы проверки завершенности анимации во Flutter, а также примеры кода.
Метод 1: использование AnimationController и AnimationStatusListener
AnimationController _controller;
void initState() {
super.initState();
_controller = AnimationController(
duration: Duration(seconds: 2),
vsync: this,
);
_controller.addStatusListener((status) {
if (status == AnimationStatus.completed) {
// Animation is complete
print("Animation complete");
}
});
_controller.forward();
}
void dispose() {
_controller.dispose();
super.dispose();
}
Метод 2: использование примеси AnimationListener
class MyWidget extends StatefulWidget {
@override
_MyWidgetState createState() => _MyWidgetState();
}
class _MyWidgetState extends State<MyWidget> with AnimationListener {
AnimationController _controller;
void initState() {
super.initState();
_controller = AnimationController(
duration: Duration(seconds: 2),
vsync: this,
);
_controller.addStatusListener((status) {
if (status == AnimationStatus.completed) {
// Animation is complete
print("Animation complete");
}
});
_controller.forward();
}
void dispose() {
_controller.dispose();
super.dispose();
}
void onAnimationComplete() {
// Animation is complete
print("Animation complete");
}
Widget build(BuildContext context) {
return Container();
}
}
Метод 3. Использование виджета AnimationBuilder
class MyWidget extends StatelessWidget {
final AnimationController _controller = AnimationController(
duration: Duration(seconds: 2),
vsync: this,
);
Widget build(BuildContext context) {
return AnimationBuilder(
animation: _controller,
builder: (BuildContext context, Widget child) {
if (_controller.isCompleted) {
// Animation is complete
print("Animation complete");
}
return Container();
},
);
}
}
В этой статье мы рассмотрели различные методы проверки завершенности анимации во Flutter. Используя AnimationController и AnimationStatusListener, миксин AnimationListener или виджет AnimationBuilder, вы можете легко определить, когда анимация достигает состояния завершения. Включение этих методов в ваши приложения Flutter позволит вам синхронизировать другие действия с вашей анимацией и обеспечить удобство взаимодействия с пользователем.