[英]How to go back to first page of app in flutter app?
所以我創建了一個應用程序,它有 4 個頁面,然后是一個 webview,所以每當用戶從 webview 注銷時,我都會推送開始屏幕。 我希望我的應用程序轉到第一頁。 我試過了:
Navigator.of(context).pushNamed('/welcomeScreen');
Navigator.popUntil(context,ModalRoute.withName('/welcomeScreen'));
但沒有運氣。 我認為這可能是因為 webview。 這是我的路線。
final routes = {
'/login': (BuildContext context) => new LoginScreen(),
'/home': (BuildContext context) => new HomeScreen(),
'/welcomeScreen':(BuildContext context) => new WelcomeScreen(),
'/email': (BuildContext context) => new EmailScreen(),
'/webview': (BuildContext context) => new WebviewScreen()
};
此函數將設置頁面根頁面,因此它應該適用於注銷情況。
我猜Navigator.pushAndRemoveUnitl
就是你要找的東西。
void makeRoutePage({BuildContext context, Widget pageRef}) {
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(builder: (context) => pageRef),
(Route<dynamic> route) => false);
}
如何使用它 :
makeRoutePage(context: context, pageRef: YourFirstPage());
另一種解決方案可以是Navigator.popUntil(context, ModalRoute.withName('/'));
這將從堆棧中彈出除初始屏幕之外的所有屏幕。
只需在任何按鈕操作中使用此代碼,它就會將 U 從任何其他頁面重定向到 MainScreen/Homepage
Navigator.of(context).pushNamedAndRemoveUntil('/', (Route<dynamic> route) => false);
您想返回所有屏幕直到 Stack 中的第一個屏幕,因此您可以使用的最佳語句是:
Navigator.popUntil(context, (Route<dynamic> predicate) => predicate.isFirst);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.