重建原因:源码FragmentNavigator中对fragment的管理时通过replace实现的,所以会导致每次切换时重建。
解决思路:继承FragmentNavigator,把replace的实现方式改为show和hide实现。
自定义FragmentNavigator来源
解决方案参考来源
用法:
1.如下:在name中引入自定义的NavHostFragmentHideShow
2.如下:通过setOnnavigationItemSelectedListener实现BottomNavigationView和NaviGraph关联。
bottom_navigation.setOnNavigationItemSelectedListener {
navController.navigate(it.itemId)
return@setOnNavigationItemSelectedListener true
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)