本エントリではデフォルトで実装される「ページを戻る機能」を無効化にする方法を説明する。
ページを戻る機能
Flutter
のアプリではページ遷移を作成するとデフォルトで「ページを戻る機能」が実装される。
「ページを戻る機能」は
AppBar
の左に表示される戻るボタン画面端から右スワイプスで戻る機能
の2種類が実装されている。それぞれ次のように動作する。
ページを戻る機能を無効化する方法
「ページを戻る機能」は一般的なので基本的にはこのままで良いのだが、場合によってはユーザーに前の画面に戻らせたくないケースがある。
そのようなケースでそれぞれの機能を無効化する方法を説明する。
「AppBarの左に表示される戻るボタン」を無効化する
AppBar
にデフォルトで表示される戻るボタンは、automaticallyImplyLeading
をfalse
に指定すれば良い。
「画面端から右スワイプスで戻る機能」を無効化する
WillPopScope
でScaffold
をラップしてonWillPop
にfalse
を返す関数を渡せば良い。
WillPopScope
はFlutterにデフォルトで実装されている「ページを戻る機能」を制御するウィジェット。
サンプルアプリの動作とコードを一部示す。
またWillPopScope
でラップしてonWillPop
を上コードのように指定すると、AppBar
の戻るボタンも無効化される。