Как сделать так, чтобы BottomNavigationView Работал не только MainActivity?
Хочу сделать так, чтобы когда авторизировался в (MainActivity) перекинуло в новое активити, где будет уже BottomNavigationView, в котором Фрагменты меняются. У меня всё получилось, кроме того, что фрагменты меняются. А когда делаю просто в MainActivity, Фрагменты спокойно меняются.
Видимо только работает в MainActivity, или как-то можно это по другому.
Ответы (1 шт):
Без примеров кода невозможно понять что у Вас не работает.
Для выполнения задачи необязательно иметь 2 Activity. Достаточно одного MainActivity.
Если требуется убирать BottomNavigationView для определенного фрагмента, вы можете сделать в MainActivity список idшников фрагментов на которых необходимо показывать BottomNavigationView.
private val botNavFragments = listOf(
R.id.favorite_fragment,
R.id.profile_fragment,
R.id.main_fragment
)
И добавить NavController.OnDestinationChangedListener который бы отслеживал изменения фрагментов и прятал BottomNavigationView. Вот пример реализации:
private val botNavFragments = listOf(
R.id.favorite_fragment,
R.id.profile_fragment,
R.id.main_fragment
)
private val destinationListener =
NavController.OnDestinationChangedListener { _, destination, _ ->
binding.bnNavigation.isVisible = botNavFragments.contains(destination.id)
}
override fun onResume() {
super.onResume()
navController?.addOnDestinationChangedListener(destinationListener)
}
override fun onPause() {
navController?.removeOnDestinationChangedListener(destinationListener)
super.onPause()
}