2019-10-25 ARouter使用

首先,为什么要使用ARouter ?原生的路由方案一般通过显式intent和隐式intent两种方案实现。在显示intent的情况下,因为会直接存在类依赖的问题,导致耦合很严重,而在隐式的情况下,一般的配置都是在Mainfest中的,这就导致了扩展性较大 。
1.初始化,如下图 :


image.png

2.如果只是进行简单的跳转页面,
ARouter.getInstance().build(“目标界面对应的路径”).navigation(); 就这样一行代码即可完成跳转界面。
另外:
1)首先:在Activity/Fragment类上面写上 Route path 注解。
注意:这里的路径需要注意的是至少需要有两级,/xx/xx
2)然后:在Activity/Fragment类里面进入Arouter 注入,也就是:ARouter.getInstance().inject(this);

3)接着:目标的Activity类上面需要声明Route path 注解,以此对应(跳转如果不对应路径,框架会Toast说路径不匹配)
当然最好是把路径写入到静态类中,封装一下


image.png

注销 :在Applicaton中 onTerminate()中注销


image.png

跳转方式 :
1) ARouter.getInstance().build("路径").navigation(); //和注解路径一致
2)带参传


image.png

3)接收参数 ,我们需要在目标界面,使用Autowired注解


image.png

值得注意的是,只有当 @Autowired(name = "test"),也就是key标签一致的情况下,才可以获取到对象的值,如果不写标签名,结果会为null 。为了规避每一个可能会遇到的风险,建议在@Autowired里面 都写上与之对应具体的key名。
4)界面跳转动画,直接调用withTransition,里面传入两个动画即可(R.anim.xxx)
image.png

5)使用URI进行跳转

ARouter框架也可以使用URI进行匹配跳转,代码也很少,只需匹配路径一致即可完成跳转:


image.png

6)Fragment的跳转也可以参照Activity跳转,第一步依旧是先写上类注释,然后是强转,代码如下
image.png

7)拦截器的使用 ,priority数字越小,优先级越高 ,拦截器方法越先执行
image.png

image.png

8)ARouter如何实现类似startActivityForResult()?
image.png

image.png

image.png

以上就是ARouter的应用,希望有所帮助,Star !!!

你可能感兴趣的:(2019-10-25 ARouter使用)