1. ホーム
  2. flutter

[解決済み] フラッター 前の画面に戻ることなく、新しい画面に移動する。

2023-05-05 21:28:04

質問

Flutterアプリで認証フローを実装しています。

サインイン試行後、CheckAuth (ユーザーがサインインしているかどうかをチェックし、それに応じてホーム画面またはサインアップ画面を開く) がこのコードで開かれます。

  void _signIn() async {
    await _auth
        .signInWithEmailAndPassword(
            email: _userEmail.trim(), password: _userPassword.trim())
        .then((task) {
      // go to home screen
      if (task.getIdToken() != null) {
        setState(() {
          Navigator.pushReplacement(
              context,
              new MaterialPageRoute(
                  builder: (BuildContext context) => new CheckAuth()));
        });
      } else {
        print("Authentication failed");
      }
    });
  }

問題:アプリへのサインインは成功するのですが、サインイン後に戻るボタンをタップすると、サインイン画面に戻ってしまいます(アプリから終了することを期待しているのに)。

質問です。 Flutterで、ある画面から別の画面に戻ることなく移動するにはどうしたらよいでしょうか。

どうにかしてnavigatorの履歴を削除する必要があるのでしょうか?または、ナビゲータを全く使用しないのですか?試してみたところ Navigator.replace メソッドを試しましたが、うまくいかなかったようです。

どうすれば解決しますか?

この場合 Navigator.pushReplacement とすると 離脱 を選択した場合、認証画面からも離脱します。ログイン画面にリダイレクトされたときだけでなく。