我使用下面的方法在进入下一个屏幕之前调用一个加载对话框,但是当我使用应用程序栏返回功能返回到上一个页面时,加载指示器仍然在加载。返回时如何清除所有导航器?
showDialog( context: context, builder: (context) { return Center( child: CircularProgressIndicator(), ); });
igetnqfo1#
你可能会调用Navigator.of(context).pop()。Context是Flutter中一个有趣但也很难理解的代码。我可以这么说每个屏幕都有自己的上下文。但是当你打开模态底部表单和对话框时,它会创建另一个上下文。如果你不仔细注意的话,这有点令人困惑(dev通常命名的每个上下文变量都是context)。因此,当您点击应用程序栏上的后退按钮并调用Navigator.of(context).pop()时,它是屏幕的上下文**,而不是对话框**。你可以点击链接:如何消除Flutter对话框?
Navigator.of(context).pop()
Context
context
1条答案
按热度按时间igetnqfo1#
你可能会调用
Navigator.of(context).pop()
。Context
是Flutter中一个有趣但也很难理解的代码。我可以这么说每个屏幕都有自己的上下文。但是当你打开模态底部表单和对话框时,它会创建另一个上下文。如果你不仔细注意的话,这有点令人困惑(dev通常命名的每个上下文变量都是context
)。因此,当您点击应用程序栏上的后退按钮并调用Navigator.of(context).pop()
时,它是屏幕的上下文**,而不是对话框**。你可以点击链接:如何消除Flutter对话框?