Во Flutter, при переносе всего приложения в WillPopScope, onWillPop не вызывается

#flutter #dart

#flutter #dart

Вопрос:

При нажатии кнопки «Назад» на Android приложение будет закрыто. Я хочу, чтобы все мое приложение имело функцию, которая при нажатии кнопки «Назад» пользователи получали уведомление с запросом подтверждения. Если они подтвердят, то сверните приложение. Итак, я попытался обернуть все ‘MaterialApp’ как дочернее устройство внутри ‘WillPopScope’. Однако ‘onWillPop’ не запускается.

 void main() async {
  runApp(
    WillPopScope(
      child: MaterialApp(
        title: 'Test',
        home: Frame(),
      ),
      onWillPop: () async {
        print('will pop!!!!!!!!!');
        return false;
      },
    ),
  );
}
  

Комментарии:

1. Я даже не уверен, что это функция / проблема flutter. Если бы вы могли это сделать, вы могли бы эффективно запретить пользователям закрывать ваше приложение. Я не думаю, что ОС позволит это.

2. Я не думаю, что причина в этом, потому что вы можете обернуть каждую страницу с помощью WillPopScope для достижения той же цели. Я думаю, WillPopScope может быть, нужно что-то от MaterialApp .

Ответ №1:

Вы не должны окружать все свое приложение этим. Вы должны использовать этот виджет для каждой страницы, на котором вы хотите, чтобы функциональность запускалась. Окружите свой каркас для вашей страницы