Перехват события системной кнопки Back в Android
Егор Долгов · 22.04.2019Статья написана для старой версии Flutter и сейчас обновляется. Часть кода может не компилироваться на актуальной версии.
Необходимо использовать виджет 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().