Один из способов в лоб - шина, по которой можно скрывать/показывать bottom navigation. Потенциальные проблемы есть, но ограничиваемся простым flow - нужные экраны запрашивают скрытие, а отображение только на корневых фрагментах
как-то сложно через шину почему бы при смене фрагмента в навигаторе не проверять новый фрагмент и зависимости от типа скрывать/показывать?
отдельным корневым экраном в корне лежит BottomNavigationFragment а дальше в зависимости от необходимости либо внутри него открывать, либо передавать родителю BottomNavigationFragment экран, который он должен поверх BottomNavigationFragment показать
Я обычно делаю для этого так называемый TopFlowFragment который в котором уже помещаю Flow с bottomnav. Когда нужно открыть чтото поверх всего, типа авторизации, полноэкранный показ картинок, или чтото вроде модального фрагмента (который перекроет всё) то открываю на TopFlow. При этом нужно понимать что если используются UI скоупы то у экранов на TopFlow не будет доступа к объектам из нижележащий по иерархии экранам, короче это будут как-бы независимые экраны и данные в них нужно передавать по своим шинам, как и возврат результата из них.
всем привет. Подскажите, пожалуйста, как в чичероне на некоторых скринов скрывать bottom navigation view?
Я создаю интерфейс showBottom, вещаю его на нужные фрагменты и в активисти просто добавляю фрагментлайвцикллистенер в onResume смотрю, если showBottom показываю, если нет скрываю
Я обычно делаю для этого так называемый TopFlowFragment который в котором уже помещаю Flow с bottomnav. Когда нужно открыть чтото поверх всего, типа авторизации, полноэкранный показ картинок, или чтото вроде модального фрагмента (который перекроет всё) то открываю на TopFlow. При этом нужно понимать что если используются UI скоупы то у экранов на TopFlow не будет доступа к объектам из нижележащий по иерархии экранам, короче это будут как-бы независимые экраны и данные в них нужно передавать по своим шинам, как и возврат результата из них.
Я создаю интерфейс showBottom, вещаю его на нужные фрагменты и в активисти просто добавляю фрагментлайвцикллистенер в onResume смотрю, если showBottom показываю, если нет скрываю
В интерфейс ещё добавляю переменную типа showBottom если тру показываю, а все что не является интерфейсом showBottom игнорю, т.к. бывает левые фрагменты
И иногда бывает что один и тот же фрагмент используется несколько раз, но где то Боттом нужен, где то нет так можно в переменную передать разное значение