Navigation+BottomNavigationView实现的tab效果重建fragment问题
Posted 胖虎
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Navigation+BottomNavigationView实现的tab效果重建fragment问题相关的知识,希望对你有一定的参考价值。
Navigation+BottomNavigationView实现的tab效果重建fragment问题
由于这个控件内部实现会导致fragment频繁重建。因此我们需要对它的listener做一点定制,来处理这个问题
val periodManagerFragment: Fragment = PeriodManagerFragment()
val mineFragment: Fragment = MineFragment()
private fun initNavigationView() {
val navView = uiViewBinding.navView
navView.setBackgroundColor(resources.getColor(R.color.colorBottomNavigationViewBackgroundColor))
val navController = findNavController(R.id.nav_host_fragment)
navView.setupWithNavController(navController)
var active = periodManagerFragment
supportFragmentManager.beginTransaction().add(R.id.nav_host_fragment, mineFragment, "2")
.hide(mineFragment).commit()
supportFragmentManager.beginTransaction()
.add(R.id.nav_host_fragment, periodManagerFragment, "1").commit()
navView.setOnNavigationItemReselectedListener { }
navView.setOnNavigationItemSelectedListener {
when (it.itemId) {
R.id.navigation_home -> {
supportFragmentManager.beginTransaction().hide(active)
.show(periodManagerFragment).commit()
active = periodManagerFragment
}
R.id.navigation_mine -> {
supportFragmentManager.beginTransaction().hide(active).show(mineFragment)
.commit()
active = mineFragment
}
}
return@setOnNavigationItemSelectedListener true
}
}
以上是关于Navigation+BottomNavigationView实现的tab效果重建fragment问题的主要内容,如果未能解决你的问题,请参考以下文章
React Navigation V2:navigation.push 和 navigation.navigate 的区别
找不到 androidx.navigation:navigation-compose:
如何从 stack.navigation 外部的组件中使用 navigation.navigate
Navigation源码解析及自定义FragmentNavigator详解
找不到模块:无法解析“swiper/css/components/navigation/navigation.scss”Nextjs