有没有一种方法可以检查页面是否打开?
Is there a way in flutter to check if the page is opened?
我正在处理通知页面和徽章以显示通知上未读通知的数量 icon.I 想要更改通知的状态以在打开通知页面时阅读并更新徽章。
是和否,有办法知道小部件是否在小部件树上,这意味着它已打开或未打开(例如,它在列中向下,这意味着它仍在小部件树上,但未打开)用户面前)
该方法可以在任何 StatefulWidget
中使用,如下所示:
void initState() {
super.initState();
if (mounted) {
//do some thing
}
}
不仅在 initState
,而且几乎在这个 StatefulWidget
的每个地方。
simply mounted 是一个布尔值,如果小部件在小部件树中,则 return 为真,否则为假。
还有许多其他方法可以在状态管理解决方案上检查这一点。
然而,根据您的用例,您不需要它,您可以在通知屏幕打开时通过调用 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(
我正在处理通知页面和徽章以显示通知上未读通知的数量 icon.I 想要更改通知的状态以在打开通知页面时阅读并更新徽章。
是和否,有办法知道小部件是否在小部件树上,这意味着它已打开或未打开(例如,它在列中向下,这意味着它仍在小部件树上,但未打开)用户面前)
该方法可以在任何 StatefulWidget
中使用,如下所示:
void initState() {
super.initState();
if (mounted) {
//do some thing
}
}
不仅在 initState
,而且几乎在这个 StatefulWidget
的每个地方。
simply mounted 是一个布尔值,如果小部件在小部件树中,则 return 为真,否则为假。
还有许多其他方法可以在状态管理解决方案上检查这一点。
然而,根据您的用例,您不需要它,您可以在通知屏幕打开时通过调用 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(