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