Вы можете окружить свой эшафот на странице 2 с помощью WillPopScope, установите для onWillPop значение false, чтобы предотвратить появление страницы системой, а затем добавьте собственную кнопку «назад» в ведущий виджет панели приложения и выполните в ней всплывающее окно.
@override
Widget build(BuildContext context) {
return new WillPopScope(
onWillPop: () async => false,
child: new Scaffold(
appBar: new AppBar(
title: new Text("data"),
leading: new IconButton(
icon: new Icon(Icons.ac_unit),
onPressed: () => Navigator.of(context).pop(),
),
),
),
);
}
код ответа от этого поста
Редактировать: дополнение к странице 2 для управления навигацией
В дополнение кПриведенный выше код добавит приведенный ниже код на страницу 2. Измените
Navigator.of(context).pop()
на
Navigator.of(context).pop('upload_files')
Затем на странице 1, где вы будете перемещаться, вы будете ждать навигации и использования.результат возвращается из всплывающего окна на странице 2 и запускает вашу логику
var navigationResult = await Navigator.push(
context,
new MaterialPageRoute(
builder: (context) => Page2()));
if(navigationResult == 'upload_files') {
uploadFiles(); // Perform your custom functionality here.
}