NavHost:是一个容器也是一个控制器,如图:

Fragment:可以在一个Activity里面加入多个Fragment,功能独立,切换时压入栈顶
NavController:控制器,控制导航的逻辑,把某个页面切出去,换进来;
Navgraph:页面切换的逻辑;是一个资源文件,所以应该在res里面的Android Resoure File创建选择navigation,然后将需要的页面加入进来并连上对应的切换顺序(action)。
val navController = Navigation.findNavController(it)
navController.navigate(action) //切换到某个页面
controller = Navigation.findNavController(this, R.id.fragment)
NavigationUI.setupActionBarWithNavController(this, controller) //导航栏
数据传递:
arguments:在获取页面:val id: Int = getArguments().getInt("id") 就可以得到id;它可以放入常见的一些数据类型。
bundle:在传递的时候就需要navController.navigate(action,bundle)加入其中,获取同上。
ViewModle + LiveData + Databinding: 因为它们的生命周期是大于Activity的,所以Fragment也可以在任何时候去访问数据,这样也算是做到数据的共享和传递。
本文详细介绍了Android中的Navigation组件,包括NavHost作为容器和控制器的角色,Fragment的独立功能和栈管理,NavController用于控制导航逻辑,以及Navgraph在页面切换逻辑中的作用。此外,还探讨了数据传递的方法,如arguments、bundle以及如何利用ViewModel、LiveData和DataBinding实现数据共享和传递。

6847

被折叠的 条评论
为什么被折叠?



