Flutter中如何知道当前屏幕?

问题描述 投票:0回答:1

我正在制作一个聊天应用程序,我想仅当用户不在聊天屏幕中时才向他发送推送通知,所以我需要知道当前屏幕或路径

我尝试在每次进入屏幕时保存屏幕名称,但是当用户使用 Navigator.pop 返回或使用手势时,它当然不起作用

我不知道什么是正确的做法

flutter navigator
1个回答
0
投票

也许您可以使用

dispose
方法在用户离开屏幕时更新状态:

import 'package:flutter/material.dart';

class ChatScreen extends StatefulWidget {
  @override
  _ChatScreenState createState() => _ChatScreenState();
}

class _ChatScreenState extends State<ChatScreen> {
  bool userInChat = false;

  @override
  void initState() {
    super.initState();
    // Set the user as "in the chat" when the widget is initialized
  }

  @override
  void dispose() {
    // Set the user as "not in the chat" when the widget is disposed (he left the screen)
    super.dispose();
  }
}

创建小部件时会调用

initState
方法,从小部件树中删除小部件时会调用
dispose
方法,通常在用户离开屏幕时会调用
dispose

© www.soinside.com 2019 - 2024. All rights reserved.