Перехват события системной кнопки Back в Android

Егор Долгов · 22.04.2019
This article was written for an older Flutter version and is being updated. Some code may not compile on the current version.

Необходимо использовать виджет WillPopScope источник

Возникают ситуации когда вам нужно обойти событие поумолчанию, системной кнопки back (кнопка назад) на сматрфонах с Android. Для этого в виджете экрана используйте виджет WillPopScope

@override
Widget build(BuildContext context) {
  return WillPopScope(
    onWillPop: () async => false,
    child: Scaffold(
      appBar: AppBar(
        title: Text("data"),
        leading: IconButton(
          icon: Icon(Icons.ac_unit),
          onPressed: () => Navigator.of(context).pop(),
        ),
      ),
    ),
  );
}

@override
Widget build(BuildContext context) {
  return WillPopScope(
    onWillPop: () async {
        //Замена события
        Navigator.of(context).pop();
        return false;
    },
    child: Scaffold(
      appBar: AppBar(
        title: Text("data"),
        leading: IconButton(
          icon: Icon(Icons.ac_unit),
          onPressed: () => Navigator.of(context).pop(),
        ),
      ),
    ),
  );
}

Можно сделать переход по маршруту или выполнить свою бизнес логику перед выполнением функции Navigator.pop().