簡體   English   中英

如何在flutter應用程序中返回應用程序的第一頁?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM