美文网首页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