Fini sh FlutterActivity от Flutter при интеграции Flutter в собственное хост-приложение [Add2App] - PullRequest
1 голос
/ 24 января 2020

При интеграции Flutter в хост-приложение ( docs ) есть несколько способов сделать это, один из них (самый простой) - открыть Flutter в новом Activity через класс FlutterActivity. Вот так:

// Java
hostActivity.startActivity(                
  FlutterActivity.withCachedEngine("my_engine_id").build(context)
);

Традиционно для Android стиля windows на стороне флаттера мы создаем AppBar с кнопкой Back .

Эта панель приложений кнопка назад и Android система кнопка возврата должны вести себя одинаково: передний план должен быть закрыт (fini sh) при нажатии на * 1015 Кнопка * назад .

В настоящее время система кнопка назад действительно закрывает FlutterActivity, но как эмулировать это поведение из-за трепетания кнопки AppBar назад ?

// Dart - Flutter side
...
child: AppBar(
  leading: IconButton(
      icon: Icon(Icons.arrow_back),
      onPressed: () {
          // WHAT MUST BE HERE?
      }),
...

PS Установлен канал платформы между флаттером и хостом - я могу вызвать любой код с любой стороны

1 Ответ

1 голос
/ 29 января 2020

Решение найдено:

SystemChannels.platform.invokeMethod<void>('SystemNavigator.pop');

Удаляет самый верхний экземпляр Flutter, представляя то, что было до него.

Вкл. Android, удаляет это действие из стека и возвращает к предыдущая деятельность.

Документация здесь: API-ссылка

...