[英]Flutter: How to pop last visited screen from stack in flutter
假設我有三個屏幕: wallet
、 payments
、 add card
。 當我在add card
屏幕時,我想從堆棧中彈出payments
屏幕並將其導航到wallet
屏幕,而不使用navigator.push
點擊圖標和設備的后退圖標。
請幫助如何做到這一點。
從您的問題中,您的導航堆棧應該如何看起來不是很清楚: payments
是堆棧中的第一個,您可以從那里add card
和wallet
嗎? 還是應該只存在一個?
我認為您可以使用pushReplacement
: https ://api.flutter.dev/flutter/widgets/Navigator/pushReplacement.html
這樣,它會自動將當前路線替換為新路線,並且您的后退按鈕將簡單地關閉應用程序(或返回之前的屏幕)。 如果您在按下后退按鈕時想要一些自定義行為,您可以隨時使用WillPopScope
:https ://api.flutter.dev/flutter/widgets/WillPopScope-class.html
Navigator.removeRoute(context, MaterialPageRoute(builder: (context) => payments()));
刪除付款屏幕時使用此代碼
請嘗試以下代碼
它從導航堆棧中彈出付款屏幕,並且導航堆棧中僅保留錢包屏幕
Navigator.popAndPushNamed(context, '/addCard');
//named
Navigator.of(context)
.pushNamedAndRemoveUntil('\wallets', (Route<dynamic> route) => false);
//not named
Navigator.of(context).pushAndRemoveUntil(MaterialPageRoute(builder: (context) =>
Wallets()), (Route<dynamic> route) => false),
Navigator.popUntil(context, ModalRoute.withName('/wallets'));
嘗試這個:
Navigator.pushReplacement()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.