Files
qinglong_app/lib/base/ui/lazy_load_state.dart
2022-01-18 13:09:29 +08:00

30 lines
729 B
Dart

import 'package:flutter/material.dart';
/// @author NewTab
mixin LazyLoadState<T extends StatefulWidget> on State<T> {
@override
void initState() {
super.initState();
WidgetsBinding.instance?.addPostFrameCallback((timeStamp) {
var route = ModalRoute.of(context);
void handler(status) {
if (status == AnimationStatus.completed) {
route?.animation?.removeStatusListener(handler);
onLazyLoad();
}
}
if (route == null ||
route.animation == null ||
route.animation!.status == AnimationStatus.completed) {
onLazyLoad();
} else {
route.animation!.addStatusListener(handler);
}
});
}
void onLazyLoad();
}