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



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

是或不是,如果小部件在小部件树上,这意味着它是打开的,也可能不是(例如它在列的下面,这意味着它仍然在小部件树上,但不是在用户前面)

该方法可用于任何StatefulWidget,如下所示:

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

不仅在initState中,而且在StatefulWidget中几乎无处不在。

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

相关内容

最新更新