Я знаю, что есть и другие вопросы о том, как использовать разные макеты панелей инструментов в приложении для одного действия, но я уже знаю, как решить эту проблему с помощью разных панелей инструментов.
Однако я бы хотелочень ценю любой вклад в то, каким будет наилучший способ сохранить состояние панели инструментов каждого фрагмента.
На данный момент у меня есть запечатанный класс ToolbarLayout
для представления всех макетов панели инструментов.
например
- Простая панель инструментов, закрепленная в верхней части экрана
- Свертывающаяся панель инструментов с липким содержимым внизу
- Свертывающаяся панель инструментов с свертываниемсодержимое под
и т. д.
Каждый фрагмент связан с ToolbarLayout
запечатанным классом, и действие просто раздувает правильный макет панели инструментов вместе со всеми связанными представлениями в activity_main.xml
* AppBarLayout
.
Проблема с этим подходом заключается в том, что я удаляю представления и раздуваю компоновку панели инструментов всякий раз, когда фрагмент изменяется.
Это может вызывать дрожание, когдасостояние панели инструментов сбрасывается в исходное состояние.
Например, панель инструментов могла быть свернута перед переходом на новый экран, но она будет расширена, когда они вернутся к нему.
Я переусердствую в этом илиЕсть ли способ заставить AppBarLayout
действия сохранить состояние панели инструментов фрагмента?
Лучше ли полностью отказаться от этого подхода и просто поставить AppBarLayout
в каждый фрагмент вместо действия?
Это упростит вещи и позволит каждому фрагменту поддерживать свое собственное состояние панели инструментов, даже если это приведет к большему дублированию кода.
Любые рекомендации о том, как лучше всего обрабатывать изменение макетов панели инструментов и сохранять состояние для каждого фрагмента.в приложении для одного действия очень приветствуется.
Спасибо.