個人開発者が勉強がてらまとめているだけのサイトです

iOS 風プッシュ Cupertino Page Transition

次の画面が右から滑り込み、前の画面は少しだけ左へずれて暗くなる。iPhone のアプリでおなじみの動き。

別名
右からスライドプッシュ遷移iOSの画面遷移スワイプで戻るPush TransitionSlide Transition
動き
右から入る前の画面が少しずれる左端から戻る
作り方
標準ウィジェット Flutter に入っているものだけで作れます

本物の Flutter ウィジェットが動きます(初回は数秒かかります)

※ 動画は動きが分かるよう 1/2 の速さです。「触ってみる」は実際の速さで動きます

別タブで大きく開く ↗

どんなもの?

iOS の標準の画面遷移です。前の画面が完全に消えず少しずれて残ることで、「奥へ進んだ」感じが出ます。

iPhone では画面の左端から右へスワイプすると、指に合わせて前の画面へ戻れます。

CupertinoPageRoute で画面を開くか、テーマの pageTransitionsTheme に CupertinoPageTransitionsBuilder を

登録すると、MaterialPageRoute のままでも Android を含めてこの動きにできます。

こんなときに

  • 一覧から詳細へ「1段深く進む」遷移
  • iOS らしい操作感にそろえたい

避けたい場面

  • 階層の関係がない画面同士の切り替え(タブの切り替えなど。フェードスルーが合う)

最小コード

// 1つの画面だけ
Navigator.of(context).push(
  CupertinoPageRoute(builder: (_) => const DetailPage()),
);

// アプリ全体で、すべての OS をこの動きにそろえる
MaterialApp(
  theme: ThemeData(
    pageTransitionsTheme: const PageTransitionsTheme(builders: {
      TargetPlatform.android: CupertinoPageTransitionsBuilder(),
      TargetPlatform.iOS: CupertinoPageTransitionsBuilder(),
    }),
  ),
)

使うウィジェット

CupertinoPageRouteCupertinoPageTransitionsBuilder

似ているもの・一緒に見たいもの

触ってみる ↗
画面遷移 Android 風ズームZoom Page Transition

次の画面が少しだけ拡大しながら現れ、前の画面も少し拡大しながら消えていく。Android 10 前後の標準の動き。

少し拡大しながら出る
触ってみる ↗
画面遷移 フェードフォワードFade Forwards Page Transition

次の画面が右から少しだけ入りながらフェードで現れ、前の画面は左へ少しずれながら消える。最近の Android の動き。

右から少し入る
触ってみる ↗
画面遷移 予測型「戻る」Predictive Back

戻るジェスチャーの途中で今の画面が縮み、後ろに前の画面がのぞく。離せば戻り、やめれば元に戻る。

引くと画面が縮む