Flutter

Flutterでモーダルを閉じた後に処理を実行する

flutter-modal-did-complete

Flutterでモーダルを閉じた後に処理を実行する

モーダルを閉じた後にステータスを変更したり、別の画面に遷移する処理を実行する処理を行いたかったので、その方法を調べてみました。

モーダルが閉じたことを検知する方法

Swiftでは以下のメソッドの completionのクロージャー内に記述すれば、モーダルを閉じた時の処理を実行することができます。
dismiss(animated: , completion: )
一方Flutterの場合は、以下のように、画面遷移元の whenCompleteに書くことでモーダルを閉じた後の処理を書くことができます。
Navigator.push(
  context,
  MaterialPageRoute(
    builder: (_) => HogePage(),
    fullscreenDialog: true, // true だとモーダル遷移になる
  ),
).whenComplete(() {
  // What you want to do after closing the modal
});
最近FlutterとSwiftを並行して書いていて、特にSwiftUIとFlutterは似たような書き方をすることも多いので、よく書き方を混同していまします笑
+1

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA