hamburger

主に日記

Flutterでバックアクションをハンドリングする

FlutterのAddToApp1を業務で利用してるんですが、FlutterEngine内で画面が保持されてしまうのでこまめに初期画面に戻しておかないと別の画面表示時にちらっと前の画面が見えてしまいます(※もしかしたらもっと良い方法があるかもしれない)

こまめに初期画面に戻しておかないと

これをするための手段としてパッと思いつくのが、戻るアクションしたときはHost側の画面スタックと一緒にFlutter側のスタックも消してしまう方法です。

FlutterにはWillPopScopeというものがあって、childにWidgetを指定しておくと戻るアクションしたときにonWillPopが呼ばれるみたいです。

api.flutter.dev

@override
Widget build(BuildContext context) {
    return WillPopScope(
        child: Scaffold(
             // 通常通りWidgetを組む
        ),
        onWillPop: _onWillPop,
    );

  Future<bool> _onWillPop() async {
    // 戻るときに実行したい処理
    return false;
  }

UIに関わることは全てWidgetという感覚が、ここ数日で馴染んできた気がする


  1. 仕事が落ち着いたらちゃんと書きたいトピック