Navigation笔记

本文详细介绍了Android中的Navigation组件,包括NavHost作为容器和控制器的角色,Fragment的独立功能和栈管理,NavController用于控制导航逻辑,以及Navgraph在页面切换逻辑中的作用。此外,还探讨了数据传递的方法,如arguments、bundle以及如何利用ViewModel、LiveData和DataBinding实现数据共享和传递。

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也可以在任何时候去访问数据,这样也算是做到数据的共享和传递。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值