当前位置:   article > 正文

Android彻底组件化—UI跳转升级改造

Android彻底组件化—UI跳转升级改造

(2)host对应的是share。在组件化框架中,每个组件对应一个唯一的host,例如分享组件的host就是share,读书组件的host是reader等等。

  • host是路由分发的第一级,根据host可以定位到每个组件。
  • host还可以对所有的路由URL进行一个分组,只有调用到该分组的路由的时候,组内的路由才会被加载进内存

(3)path对应的是shareBook。它对应的是具体的每个具体的页面,例如shareBook对应就是ShareActivity。在一个组件之内,path是不能重复的

(4)query对应的是bookName=Gone with the Wind。它表示要跳转到ShareActivity,需要传入的参数,例如这里需要传入书的名字等。

下面我们就讲一下如何使用DDComponent的UI跳转新功能!

组件添加必要的依赖

在组件的build.gradle中添加依赖

annotationProcessor ‘com.luojilab.ddcomponent:router-anno-compiler:1.0.0’

同时添加

defaultConfig {
javaCompileOptions {
annotationProcessorOptions {
arguments = [host: “share”]
}
}
}

此处的"share"是跳转URI中的host,每个组件需要设置不同的host。

注册组件到UIRouter中

在组件的声明周期类ApplicationLike中,添加注册和反注册代码

public class ShareApplike implements IApplicationLike {
UIRouter uiRouter = UIRouter.getInstance();
@Override
public void onCreate() {
uiRouter.registerUI(“share”);
}
@Override
public void onStop() {
uiRouter.unregisterUI(“share”);
}
}

目标页面添加注解

首先在跳转的目的Activity上添加RouteNode注解

@RouteNode(path = “/shareBook”, desc = “分享书籍页面”)
public class ShareActivity extends AppCompatActivity {

如果需要传入参数,在具体的参数定义上增加Autowired注解:

@Autowired
String bookName;
@Autowired
Author author;

注意此处的参数不能是private的,否则编译会直接报错。这里的原因在于依赖注入的时候没有使用反射,而是直接调用了该参数,所以需要参数至少是包可见的。

依赖注入

如果想使用自动装载功能,需要在Activity的onCreate中调用方法

AutowiredService.Factory.getInstance().create().autowire(this);

建议该方法在基类Activity中调用

build项目

项目执行build,会生成apt文件,具体可在build目录下面查看 同时还会在根目录生成UIRouterTable文件夹,里面会列出每个组件向外提供的路由表

auto generated, do not change !!!

HOST : share

分享杂志页面
/shareMagazine
author:com.luojilab.componentservice.share.bean.Author
bookName:String

分享书籍页面
/shareBook
author:com.luojilab.componentservice.share.bean.Author
bookName:String

跳转

在发起跳转页面,有三种方式可以跳转到目的页面

Bundle方式

// UI transfer with Bundle
private void goToShareActivityWithBundle() {
Author author = new Author();
author.setName(“Margaret Mitchell”);
author.setCounty(“USA”);
Bundle bundle = new Bundle();
bundle.putString(“bookName”, “Gone with the Wind”);
bundle.putString(“author”, JsonService.Factory.getInstance()
.create().toJsonString(author));
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

最后

最后这里放上我这段时间复习的资料,这个资料也是偶然一位朋友分享给我的,里面包含了腾讯、字节跳动、阿里、百度2019-2021面试真题解析,并且把每个技术点整理成了视频和PDF(知识脉络 + 诸多细节)。

还有 高级架构技术进阶脑图、高级进阶架构资料 帮助大家学习提升进阶,也可以分享给身边好友一起学习。

一起互勉~

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!

12228803870)]

[外链图片转存中…(img-5URzI011-1712228803870)]

一起互勉~

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/400531
推荐阅读
相关标签
  

闽ICP备14008679号