我对Flutter还是很陌生,来自iOS开发。我正在尝试创建一个可从应用程序中的任何位置启动的模式小部件流程/旅程,而我在掌握如何正确呈现和消除模式流程方面遇到了麻烦。
[每当我想从应用程序中的某个位置呈现模式流时,都会调用此函数:
Widget launchModalFlow() {
return Navigator(
onGenerateRoute: (settings) => MaterialPageRoute(
settings: settings,
builder: (BuildContext _) => FirstStepScreen(
didComplete: (context) {
_pushSecondScreen(context); // this is a method which uses Navigator.of(context) to push another widget onto the navigation stack
},
),
),
);
}
这样称呼:
Navigator.of(context, rootNavigator: true).push(new MaterialPageRoute(
builder: (BuildContext context) {
return launchModalFlow();
},
fullscreenDialog: true,
));
[每当我希望消除模态流时,我都会在模态流中执行此操作,例如,当您在应用程序栏中点击关闭或到达流尾时:
Navigator.of(context, rootNavigator: true).pop();
虽然这是某种作品,但由于(可能更多,但主要是)两个原因,感觉不正确:
因此,我想我的问题是:如果我使用不是根导航器的导航器来呈现模态流,我如何获得对当前导航器的引用以消除该流?还是我采用完全不正确的方法来做到这一点?
脚注:
很简单。
Navigator.of(context).pop();
不要因为太用力而感到困惑。