Bottom Navigation как скрыть на некоторых Fragmentах?

В Activity имеется Bottom Navigation. Мне этот компонент не нужен на всех fragmentах, я хочу его там скрыть.

Как это можно сделать?

Я сейчас пытаюсь достучаться из Fragment

val nav = view.findViewById<BottomNavigationView>(R.id.nav_view)
nav.visibility = View.GONE

Ожидаемо падает

 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.app.peshkariki/com.app.peshkariki.MainActivity}: java.lang.IllegalStateException: nav must not be null

Ответы (2 шт):

Автор решения: Andrew

Я бы вам советовал два варианта: попроще и посложнее.

  1. При использовании нижнего меню на нужном вам фрагменте просто скрывайте нижнее меню как вы уже это сделали. Проблема в том что bottomNavigationView находится в разметке активности а не фрагмента. Поэтому приложение падает.
  2. Второй вариант - использование интерфейса между активностью и фрагментом. То есть вы сделаете канал связи по которому из нужного вам фрагмента можно будет скрыть нижнее меню.
→ Ссылка
Автор решения: Child_of_the_sun

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

→ Ссылка