スワイプで戻る Swipe Back Gesture
画面の左端から右へ指で払うと、指に合わせて今の画面がずれ、前の画面に戻る。iPhone の基本操作。
本物の Flutter ウィジェットが動きます(初回は数秒かかります)
どんなもの?
iPhone では戻るボタンを押すより、この操作で戻る人のほうが多いくらいの基本の動きです。
指に合わせて画面が動くので、途中でやめて元に戻すこともできます。
CupertinoPageRoute で開いた画面(iOS では MaterialPageRoute も既定でこの遷移)には最初から付いています。
指で触ったときだけ反応し、PC のマウスでは引けません。
戻れないようにした画面(PopScope の canPop: false)では、このジェスチャーも止まります。
こんなときに
- iOS アプリの「一覧 → 詳細」のような、階層を降りていく画面
避けたい場面
- 画面の左端から始まる横スワイプを、ほかの操作(ドロワーや横スクロール)に使っている画面
最小コード
// iOS 風の遷移で開けば、左端からのスワイプで戻れる
Navigator.of(context).push(
CupertinoPageRoute(builder: (_) => const DetailPage()),
);
// Android でも同じ動きにしたいとき
ThemeData(
pageTransitionsTheme: const PageTransitionsTheme(builders: {
TargetPlatform.android: CupertinoPageTransitionsBuilder(),
}),
)使うウィジェット
CupertinoPageRouteCupertinoPageTransitionsBuilder