Help us understand the problem. What is going on with this article?

[Flutter]popUntilメソッドで初期画面に遷移させる

はじめに

Flutterで画面遷移させる方法には2種類あります。
1.事前に定義したルートに遷移(Navigator.pushNamed)
2.事前に定義せずに遷移(Navigator.push)

どちらも一つ前の画面に戻るときは Navigator.pop ですが、初期画面(ルートページ)に戻る方法が異なるため、方法をまとめます。

スクリーンショット 2020-05-16 17.08.15.png

1.pushNamedを使っている場合

例えば初期画面に /home と名付けている場合、以下の記述で初期画面に戻ることができます。初期画面ではなく途中で止めたい場合も、同様にwithNameの引数にすることで実現できます。

Navigator.popUntil(context, ModalRoute.withName("/home"));

2.pushを使っている場合

上と比べると少し複雑ですが、下記コードで名前を指定していなくとも初期画面まで戻ることができます。

Navigator.popUntil(context, (Route<dynamic> route) => route.isFirst);

また、以下の書き方でも同じことが実現できます。

Navigator.of(context).popUntil((route) => route.isFirst);

参考

■公式ドキュメント
https://flutter.dev/docs/cookbook/navigation/navigation-basics
https://flutter.dev/docs/cookbook/navigation/named-routes
https://api.flutter.dev/flutter/widgets/Navigator/popUntil.html
■stack overflow
https://stackoverflow.com/questions/49672706/flutter-navigation-pop-to-index-1/51562273

fujit33
brainpad
ブレインパッドは、2004年の創業以来、データによるビジネス創造と経営改善に向き合ってきたデータ活用・分析企業です。
http://www.brainpad.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした