Двойная панель Best Practice в Android, использующая только одно действие и два фрагмента в Android - PullRequest
0 голосов
/ 15 октября 2018

Введение

Настройка двухпанельного приложения с двумя Действиями и двумя возможными фрагментами обсуждается в нескольких руководствах, см., Например, руководство от Ланса Глисона .ТАКЖЕ код заглушки из Android Studio использует такую ​​реализацию.

Проблема

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

Дело в том, что Andoroid заявляет, что с этого момента можно продолжать работу с одним приложением: Сегодня мы представляем компонент Navigation в качестве основы для структурирования пользовательского интерфейса в приложении, уделяя особое внимание созданию единого приложения.-Деятельность приложения предпочтительной архитектуры.

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

  • Несмотря на то, что действие перезагружено, фрагмент не является
  • Повторное использование уже созданных фрагментов в действии (которое было повернуто), и управление фрагментами становится утомительным и сложным в обслуживании.См., Например, решение, предоставленное Danielle B

Вопрос

Какое решение является наилучшей практикой для двухпанельной архитектуры в Android, использующей только 1 действие,два фрагмента при сохранении состояния фрагментов во время изменения конфигурации?

С уважением

Jens Buysse

1 Ответ

0 голосов
/ 15 октября 2018

При использовании компонентов архитектуры (AC) обычно используется класс ViewModel.Этот класс делает возможной связь между фрагментами и поддерживает его состояние, когда происходят изменения конфигурации.

Посмотрите документы, описывающие AC ViewModel: https://developer.android.com/topic/libraries/architecture/viewmodel

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...