Size: a a a

Cicerone Chat (RUS)

2021 March 12

AD

Aleksey D. in Cicerone Chat (RUS)
Евгений Кузовкин
Переслано от Евгений Кузовкин
Один из способов в лоб - шина, по которой можно скрывать/показывать bottom navigation. Потенциальные проблемы есть, но ограничиваемся простым flow - нужные экраны запрашивают скрытие, а отображение только на корневых фрагментах
как-то сложно через шину
почему бы при смене фрагмента в навигаторе не проверять новый фрагмент и зависимости от типа скрывать/показывать?
источник

AD

Aleksey D. in Cicerone Chat (RUS)
Dmitriy Li
Он же предыдущий стек очистит
отдельным корневым экраном
в корне лежит BottomNavigationFragment
а дальше в зависимости от необходимости либо внутри него открывать, либо передавать родителю BottomNavigationFragment экран, который он должен поверх BottomNavigationFragment показать
источник

Р

Роман in Cicerone Chat (RUS)
Aleksey D.
как-то сложно через шину
почему бы при смене фрагмента в навигаторе не проверять новый фрагмент и зависимости от типа скрывать/показывать?
Потому что обычно команда скрывать/показывать запускается не из того места где есть доступ к этому функционалу а из разных презентов например
источник

AD

Aleksey D. in Cicerone Chat (RUS)
Роман
Потому что обычно команда скрывать/показывать запускается не из того места где есть доступ к этому функционалу а из разных презентов например
так поэтому и не надо ее там запускать)
источник

Р

Роман in Cicerone Chat (RUS)
Aleksey D.
так поэтому и не надо ее там запускать)
Из моей практики какраз из таких мест только и надо
источник

DL

Dmitriy Li in Cicerone Chat (RUS)
Роман
Я обычно делаю для этого так называемый TopFlowFragment который в котором уже помещаю Flow с bottomnav. Когда нужно открыть чтото поверх всего, типа авторизации, полноэкранный показ картинок, или чтото вроде модального фрагмента (который перекроет всё) то открываю на TopFlow. При этом нужно понимать что если используются UI скоупы то у экранов на TopFlow не будет доступа к объектам из нижележащий по иерархии экранам, короче это будут как-бы независимые экраны и данные в них нужно передавать по своим шинам, как и возврат результата из них.

При этом предыдущий стек не очищается
Есть пример?
источник

AD

Aleksey D. in Cicerone Chat (RUS)
Роман
Из моей практики какраз из таких мест только и надо
не смею спорить с вашей практикой)
источник

Р

Роман in Cicerone Chat (RUS)
Dmitriy Li
Есть пример?
https://github.com/rsajob/android-rsastack/blob/master/app/src/main/java/com/myapp/ui/TopFlow.kt

Вот тут можно посмотреть. Правда там немного всё подустрело, давно не обновлял, но суть понятна.
источник

Т

Тимур in Cicerone Chat (RUS)
Dmitriy Li
всем привет. Подскажите, пожалуйста, как в чичероне на некоторых скринов скрывать bottom navigation view?
Я создаю интерфейс showBottom, вещаю его на нужные фрагменты и в активисти просто добавляю фрагментлайвцикллистенер в onResume смотрю, если showBottom показываю, если нет скрываю
источник

S

Silent829 in Cicerone Chat (RUS)
Роман
Я обычно делаю для этого так называемый TopFlowFragment который в котором уже помещаю Flow с bottomnav. Когда нужно открыть чтото поверх всего, типа авторизации, полноэкранный показ картинок, или чтото вроде модального фрагмента (который перекроет всё) то открываю на TopFlow. При этом нужно понимать что если используются UI скоупы то у экранов на TopFlow не будет доступа к объектам из нижележащий по иерархии экранам, короче это будут как-бы независимые экраны и данные в них нужно передавать по своим шинам, как и возврат результата из них.

При этом предыдущий стек не очищается
А активность не подходит?
источник

Р

Роман in Cicerone Chat (RUS)
Silent829
А активность не подходит?
Нет потому что SingleActivity, да и с фрагментами проще, лучше встраиваются в общую концепцию, особо ничего делать специально не требуется
источник
2021 March 13

S

Silent829 in Cicerone Chat (RUS)
Роман
Нет потому что SingleActivity, да и с фрагментами проще, лучше встраиваются в общую концепцию, особо ничего делать специально не требуется
А как тут Single Activity противоречит? Мол TopFlowFragment может быть несколько?
источник

DL

Dmitriy Li in Cicerone Chat (RUS)
Роман
https://github.com/rsajob/android-rsastack/blob/master/app/src/main/java/com/myapp/ui/TopFlow.kt

Вот тут можно посмотреть. Правда там немного всё подустрело, давно не обновлял, но суть понятна.
Спасибо
источник

DL

Dmitriy Li in Cicerone Chat (RUS)
Тимур
Я создаю интерфейс showBottom, вещаю его на нужные фрагменты и в активисти просто добавляю фрагментлайвцикллистенер в onResume смотрю, если showBottom показываю, если нет скрываю
Что за листенер?
источник

Т

Тимур in Cicerone Chat (RUS)
источник

DL

Dmitriy Li in Cicerone Chat (RUS)
Спасибо)
источник

Т

Тимур in Cicerone Chat (RUS)
Dmitriy Li
Спасибо)
В интерфейс ещё добавляю переменную типа showBottom если тру показываю, а все что не является интерфейсом showBottom игнорю, т.к. бывает левые фрагменты
источник

Т

Тимур in Cicerone Chat (RUS)
И иногда бывает что один и тот же фрагмент используется несколько раз, но где то Боттом нужен, где то нет так можно в переменную передать разное значение
источник

AB

Aleksei B. in Cicerone Chat (RUS)
Я правильно понимаю, что передача результата в Cicerone работает через Fragment Result API?
источник

S

Silent829 in Cicerone Chat (RUS)
Aleksei B.
Я правильно понимаю, что передача результата в Cicerone работает через Fragment Result API?
нет
источник