ひらひらするのが初めてで、複数の画面を備えたアプリで作業しています。
ボタンをクリックしてナビゲートした場合、フラッターが同じルートの複数の画面を作成しないようにしたいのですが、たとえばPage 1とPage 2があります。ページ2と同じボタンをもう一度クリックすると、アプリケーションによってページ2の新しい画面がプッシュされ、2回表示されます。戻るボタンをクリックすると、最初に作成されたものに戻ります- ページ2
すべてのページを一度だけ作成し、それがすでにスタックにプッシュされている場合は再度開く方法はありますか?
すべてのナビゲーションにNavigator.Push
を使用しています
Navigator.pushReplacement()
を使用する必要があります。ここにドキュメントがあります: https://api.flutter.dev/flutter/widgets/NavigatorState/pushReplacement.html
要約すると、pushReplacement
を呼び出すと、新しいページがプッシュされますが、前のページも破棄されます。これで、戻るボタンを押すと、ページ1に戻るはずです。
Navigator.of(context).pushNamed(Routes.LevelViewChildScreen);
を使用してすべてのページに移動し、Navigator.of(context).pop();
を使用して戻ります。