flutter - Flutter - 弹出直到没有路线的屏幕
问题描述
我有一个这样开始的 Flutter 应用程序:
void main() async {
// Check if user is logged in
runApp(
MaterialApp(
home: (isLoggedIn) ? MainPage() : PageLogin(),
),
);
}
我的 MainPage(和我的 LoginPage)只是 2 个常规的 Stateful Widget。
class MainPage extends StatefulWidget {
MainPage({Key key, this.selectedPageDefault = 0}) : super(key: key);
@override
_MainPageState createState() => _MainPageState();
}
假设我还有 2 个页面,就像 MainPage :PageOne
和PageTwo
.
当我点击一个按钮时MainPage
,它带我去PageOne
,当我点击一个按钮时PageOne
,它带我去PageTwo
。
我去他们使用:
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => PageOne(), // Or PageTwo
),
);
现在,当我单击 中的按钮时PageTwo
,我想返回MainPage
。
我可以使用Navigator.of(context).popUntil(...)
,但是它需要使用路由,我没有去MainPage
使用路由。
这只是一个例子,但在真正的应用程序上,我有不止 2 页之后MainPage
,所以我不能只使用pushReplacement
或一个棘手的方法来实现这一点。
我怎样才能回去MainPage
?
解决方案
用这个Navigator.of(context).popUntil((route) => route.isFirst)
推荐阅读
- c# - Calling methods in sequential order in parallel processing
- node.js - Typescript decorators still experimental?
- javascript - HighChart中的甘特图?
- r - Write output of R loop to output file or indicate progress?
- android - Certain physical device shows different background color than selected and showed by other devices
- python - Expand a dictionary column into rows with both dict keys and dict values as new column values in pandas
- entity-framework-6 - Error- Unable to determine the provider name for provider factory of type 'Npgsql.NpgsqlFactory' in .net core 5 with npgsql
- javascript - How to dynamically change icon name?
- scrapy - Scrapy css selector not getting text in
- ios - didReceiveNewSession method of QBRTCClientDelegate is not getting invoked