有没有一种方法可以检查页面是否打开?

时间:2021-03-04 19:35:25

标签: android ios flutter dart notifications

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

1 个答案:

答案 0 :(得分:0)

是与否,需要知道小部件是否在小部件树上,这意味着它已打开,也可能没有(例如,它在列中,这意味着它仍在小部件树上,但不在前面用户)

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

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

不仅在 initState 中,而且几乎在此 StatefulWidget 中的所有位置。

simplymounted 是一个布尔值,如果小部件在小部件树中则返回 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(