美文网首页flutter
Flutter里的viewWillAppear

Flutter里的viewWillAppear

作者: 倪大头 | 来源:发表于2020-12-24 16:00 被阅读0次

首先要在main.dart文件里创建全局路由监听对象

RouteObserver<PageRoute> routeObserver = RouteObserver<PageRoute>();

传入MaterialApp的navigatorObservers属性里

navigatorObservers: [routeObserver],
image.png

在需要的页面里使用routeObserver加入监听:
1.在该页面的State混入RouteAware

class _DailyofficeState extends State<DailyofficePage> with RouteAware {

2.重写didChangeDependencies方法加入监听

@override
 void didChangeDependencies() {
    super.didChangeDependencies();
    routeObserver.subscribe(this, ModalRoute.of(context));
 }

3.在页面dispose时销毁监听

@override
 void dispose() {
    routeObserver.unsubscribe(this);
    super.dispose();
 }

4.重写需要监听的事件方法
当Push到该页面时:

@override
 void didPush() {
    print('didPush');
 }

当Pop到该页面时:

@override
 void didPopNext() {
    print('didPopNext');
 }

当该页面Push到其他页面时:

@override
void didPushNext() {
    print('didPushNext');
}

当该页面被Pop时:

@override
 void didPop() {
    print('didPop');
 }
image.png

相关文章

网友评论

    本文标题:Flutter里的viewWillAppear

    本文链接:https://www.haomeiwen.com/subject/sxmmnktx.html