Flutter

【Flutter】遷移先から戻る処理で遷移前のページに戻りたくない時2

前回の「【Flutter】遷移先から戻る処理で遷移前のページに戻りたくない時」で紹介した遷移方法の自分の認識が少し違ったので訂正。

pushReplacementで遷移した場合には、遷移先のAppBarの戻るボタンが表示されないと思っていたが、正しくは「pushReplacementを使った遷移元ページの情報を残さない」というものだった。

 

ログイン画面では以下のような画面遷移を想定していた。

ページA :Googleまたは メールアドレスでのサインイン選択画面
ページB :登録画面、ここではページAに戻ることは可能にしたい
ページC :登録完了後に遷移する本来のアプリMain画面:ここではページA、Bに戻りたくない

だが上記の実装の場合、ページCのAppBarには戻るボタンが表示され、ページAに戻ることが可能。(pushReplacementでページBのpush情報は残されていないのでページAに戻る)

ページCではページA、Bのどちらにも戻りたくないが、ページBからAには戻ることは可能としたい。

 

こんな場合は、pushAndRemoveUntilを使う。

ページBでの登録完了後、pushAndRemoveUntilページCへ遷移。

これで、ページBからAに戻ることは可能になりつつ、ページCのAppBarに戻るボタンは表示されずページA、Bに戻ることはできない処理を実現可能となった。