navigation单页面应用开发过程---入门篇(非MVVM开发模式)

介绍

在学习jetpack之后,了解navigation组件,navigation组件使用的是Fragment操作,但是在中国的公司的项目极少有这么做,基本都是每个界面对应每个Activity。最近公司刚接到一个半成品项目,里面使用的navigation正好是单页面应用,所有的基于Fragment。建议使用该组件学习MVVM开发模式,MVVM开发模式就是基于jetpack框架,使用livedata+viewmodel+databinding开发

navigation开发步骤

建立Activity,进入Activity中的XML中,使用拖曳组件界面,把NavHostFragment拖入XML中,会弹出Dialog选择
在这里插入图片描述

点击“+”添加一个新的layout,然后把该layout添加到NavHostFragment中
在这里插入图片描述
进入建立的layout中,使用design预览
在这里插入图片描述
新建多个Fragment页面功能,并且在layout中design点击“+”,选择使用的Fragment在layout中
在这里插入图片描述
然后点击相应的layout中的fragment,填写属性,动画,参数不是必须,但是如下看到,尽量填上
在这里插入图片描述
如果您要把A跳转B,B跳转C,就需要点击A把线拖到B,点击B把线拖到C即可,就实现UI业务流程,注意一定要把其中一个设为HOME开始Fragment,设置点击HOME图标即可
在这里插入图片描述
接下来就需要写跳转代码,在碎片中写,即可实现跳转,至于带参数传入Bundler即可,当然google也有自己的插件safes也可以,viewmodel也可以,这些就不说了
在这里插入图片描述
如果您要返回指定界面,需要这样写,其实就是一个退栈过程
在这里插入图片描述
当然您也有可能您会碰到这样一个需求A->B->C;然后C->A;那么这种需求navHost没有提供退栈回传参数方式,google文档建议使用的是VIEWMODE共享参数,这个以后再讲,今天教您用其他方式实现,其他方式有:广播、EventBus、RxBus;今天我使用的就是EventBus,A界面代码如下:
在这里插入图片描述
C界面代码如下在这里插入图片描述
在做这个的时候您会发现每次回退栈每次都重新执行Fragment的生命周期,那么这个问题的解决方案如下:
在这里插入图片描述

这些是基本的使用,后面有时间会讲高级使用;没有android基础或者jetpack都没学过的有问题不要问我,问之前请先学习jetpack框架;谢谢

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值