1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Fluitter】Android端末の戻るボタンが押された時に画面が最後の一枚(戻る画面がない)場合、確認ダイアログを表示する方法

Last updated at Posted at 2020-02-05

Android端末では、戻るボタンが常に存在するため、戻る画面がない状態でそのボタンが押された場合はアプリが終了してしまう。

これを検出する方法を調べた。

結果: WillPopScope Widgetを用いる

その場合、 戻るボタンを WillPopScope Widgetで検出すると、Stackの2枚目以降に表示されている画面の場合は、左上のLeft Arrowを押下した場合でもonWillPop関数が呼び出されてしまう。

その場合、以下のようにして分岐させる。

onWillPop: () {
        // 当該画面が最初の画面であった場合、trueが帰ってくる 
        bool _screenIsFirst = ModalRoute.of(context).isFirst;
        if (_screenIsFirst) {
          return showDialog(
            context: context,
            barrierDismissible: false,
            builder: (context) => buildAlertDialogBackKeyOnPressed(context),
          );
        }
        // onWillPopはFuture<bool>を返り値として指定しているため、以下の値を返す
        return Future.value(true);
      },
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?