【问题标题】:Is there a way in flutter to check if the page is opened?有没有办法检查页面是否打开?
【发布时间】:2021-03-04 19:35:25
【问题描述】:

我正在处理通知页面和徽章以在通知图标上显示未读通知的数量。我想更改通知的状态以在打开通知页面时阅读并更新徽章。

【问题讨论】:

    标签: android ios flutter dart notifications


    【解决方案1】:

    是与否,我们无法知道小部件是否在小部件树上,这意味着它已打开,也可能未打开(例如,它位于一列中,这意味着它仍在小部件树上但不在前面用户)

    该方法可以在任何StatefulWidget 中使用,如下所示:

      void initState() {
        super.initState();
        if (mounted) {
          //do some thing
        }
      }
    

    不仅在initState 中,而且在这个StatefulWidget 的几乎所有地方。

    simply mounted 是一个布尔值,如果小部件在小部件树中则返回 true,否则返回 false。

    还有许多其他方法可以在状态管理解决方案中检查这一点。

    但是,根据您的用例,您不需要它,您可以在打开通知屏幕时简单地重置或隐藏通知计数器,方法是调用 initState()didChangeDependencies() 中的方法,甚至在构建之后调用甚至可以在StatelessWidget 上完成的方法,如下所示:

    class NotificationScreen extends StatelessWidget {
      const NotificationScreen({Key key}) : super(key: key);
    
      @override
      Widget build(BuildContext context) {
    
      // this will be called every time you open this widget (screen)
    
        restNotificationConter();
      return Scaffold(
    

    【讨论】:

    • 谢谢你。为什么我没有想到这个:p。谢谢你的时间
    猜你喜欢
    • 1970-01-01
    • 2016-07-15
    • 1970-01-01
    • 2010-09-18
    • 2022-06-25
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多