web-dev-qa-db-ja.com

フラッターナビゲーション、ページを再度押すのではなくページを再度開く

ひらひらするのが初めてで、複数の画面を備えたアプリで作業しています。

ボタンをクリックしてナビゲートした場合、フラッターが同じルートの複数の画面を作成しないようにしたいのですが、たとえばPage 1Page 2があります。ページ2と同じボタンをもう一度クリックすると、アプリケーションによってページ2の新しい画面がプッシュされ、2回表示されます。戻るボタンをクリックすると、最初に作成されたものに戻ります- ページ2

すべてのページを一度だけ作成し、それがすでにスタックにプッシュされている場合は再度開く方法はありますか?

すべてのナビゲーションにNavigator.Pushを使用しています

2
Mohammed Bouali

Navigator.pushReplacement()を使用する必要があります。ここにドキュメントがあります: https://api.flutter.dev/flutter/widgets/NavigatorState/pushReplacement.html

要約すると、pushReplacementを呼び出すと、新しいページがプッシュされますが、前のページも破棄されます。これで、戻るボタンを押すと、ページ1に戻るはずです。

0
Benjamin

Navigator.of(context).pushNamed(Routes.LevelViewChildScreen);を使用してすべてのページに移動し、Navigator.of(context).pop();を使用して戻ります。

pushNamedの詳細はこちら

0
Ravinder Kumar