Open1

Navigatorのpopとpushの違い

FYno52FYno52

FlutterのNavigatorクラスは、アプリケーション内で画面間の遷移を管理するための重要なクラスです。popおよびpushは、Navigatorを使用して画面遷移を制御する際に使われるメソッドです。

  1. pushメソッド:
    pushメソッドは、新しい画面をスタックに追加し、画面遷移を行います。新しい画面を表示する際に使用します。例えば、新しい画面に遷移するときに使用します。

    Navigator.push(
      context,
      MaterialPageRoute(builder: (context) => NewScreen()),
    );
    
  2. popメソッド:
    popメソッドは、現在の画面をスタックから削除し、一つ前の画面に戻るために使用します。これは、通常、"戻る"ボタンや特定のアクションに対する応答として使われます。

    Navigator.pop(context);
    

    また、popメソッドは、引数として値を渡すこともできます。この値は、前の画面に戻った際に渡され、前の画面で利用することができます。

    Navigator.pop(context, result);
    

    そして前の画面で受け取る際には、popメソッドの呼び出し結果から取得できます。

    var result = await Navigator.push(context, MaterialPageRoute(builder: (context) => NewScreen()));
    
    // resultを利用する
    

簡単に言えば、pushは新しい画面への遷移を行い、popは現在の画面を閉じて前の画面に戻る遷移を行うという違いがあります。