Есть ли способ иметь разные макеты панели инструментов, которые сохраняют состояние для каждого фрагмента в одном приложении активности? - PullRequest
0 голосов
/ 14 декабря 2018

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

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

На данный момент у меня есть запечатанный класс ToolbarLayout для представления всех макетов панели инструментов.

например

  1. Простая панель инструментов, закрепленная в верхней части экрана
  2. Свертывающаяся панель инструментов с липким содержимым внизу
  3. Свертывающаяся панель инструментов с свертываниемсодержимое под

и т. д.

Каждый фрагмент связан с ToolbarLayout запечатанным классом, и действие просто раздувает правильный макет панели инструментов вместе со всеми связанными представлениями в activity_main.xml * AppBarLayout.

Проблема с этим подходом заключается в том, что я удаляю представления и раздуваю компоновку панели инструментов всякий раз, когда фрагмент изменяется.

Это может вызывать дрожание, когдасостояние панели инструментов сбрасывается в исходное состояние.

Например, панель инструментов могла быть свернута перед переходом на новый экран, но она будет расширена, когда они вернутся к нему.

Я переусердствую в этом илиЕсть ли способ заставить AppBarLayout действия сохранить состояние панели инструментов фрагмента?

Лучше ли полностью отказаться от этого подхода и просто поставить AppBarLayout в каждый фрагмент вместо действия?

Это упростит вещи и позволит каждому фрагменту поддерживать свое собственное состояние панели инструментов, даже если это приведет к большему дублированию кода.

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

Спасибо.

...