📱

Flutter で Android と iOS のスワイプして戻る画面遷移機能を無効化する

に公開

なにこれ

この戻る機能を無くしたいので、それを実装した時のメモを書く
image.png

解決方法

PopScope を利用して canPop: false を実装するだけで大丈夫でした。

Before

class _HomeViewState extends State<HomeView> {
  int selectedIndex;

  _HomeViewState({Key? key, required this.selectedIndex});

  
  Widget build(BuildContext context) {
    return Scaffold(
      // コードが続く

After

class _HomeViewState extends State<HomeView> {
  int selectedIndex;

  _HomeViewState({Key? key, required this.selectedIndex});

  
  Widget build(BuildContext context) {
    return PopScope( // ここを追加
      canPop: false, // false で無効化
      child: Scaffold( // Scaffold は child に入れる
        // コードが続く

おわりに

この実装方法については公式サイトで紹介されていました。
デフォルトでは canPop は true ですよということでした。
https://api.flutter.dev/flutter/widgets/PopScope-class.html
image.png

追記

2024/08/03

Android の戻るボタンによってアプリをバックグラウンドへ移動させて、ホームに戻る処理を実装したくなったので以下をまとめました。

https://qiita.com/su3-hokkaido/items/d9454744832450cb6629

GitHubで編集を提案

Discussion