我如何知道推送新页面时过渡动画已完成



当推送一个新页面时,我在initState中加载数据。这导致在过渡动画期间出现卡顿。这个问题在安卓上尤其严重。

在反应本机中,我可以使用

InteractionManager.runAfterInteractions (() => {
// ... do some time-consuming operations ...
});

颤振有没有类似的方法。让我知道过渡动画已经完成?

在目标页面中,您可以获取ModalRoute的实例。ModalRoute有一个animation属性,用于公开addStatusListener以对动画生命周期事件做出反应。

以下示例可能对您有所帮助:

Widget build(BuildContext context) {
var route = ModalRoute.of(context);
// Defining an internal function to be able to remove the listener
void handler(status) {
if (status == AnimationStatus.completed) {
print('Animation completed !');
route.animation.removeStatusListener(handler);
}
}
route.animation.addStatusListener(handler);
..

最新更新