我想知道使用导航组件+ BottomNavigationView + NavigationDrawer的最佳实践是什么。
我已经尝试使用Google的高级sample导航组件。对于多个后堆栈模块来说,它的效果很好。因为它有一种解决方法extension。使用这种方法时,每个底部标签都有其自己的图形,并且随着您选择其中一个标签,图形也会发生变化。
但是,当集成NavigationView时,它需要事先知道导航图。但是在高级示例中,没有使用navGraph属性,而是通过编程为bottomNavigation添加了图形。
当同时使用底部导航视图和导航抽屉视图时,我们如何管理图形?
答案 0 :(得分:0)
在尝试了不同的方法之后,我得出了结论,当同时使用BottomNavigationView和NavigationDrawer时,最好的做法是使导航图保持单一。当具有多个导航图时,将很难管理屏幕之间的逻辑连接。
要控制工具栏和bottomNavigationView的可见性,我使用addOnDestinationChangedListener
navController.addOnDestinationChangedListener { controller, destination, arguments ->
when(destination.id){ //check with destination ids, }
这可能不是最佳做法。如果您有更好的方法,请分享