首先,为什么要使用ARouter ?原生的路由方案一般通过显式intent和隐式intent两种方案实现。在显示intent的情况下,因为会直接存在类依赖的问题,导致耦合很严重,而在隐式的情况下,一般的配置都是在Mainfest中的,这就导致了扩展性较大 。
1.初始化,如下图 :
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说路径不匹配)
当然最好是把路径写入到静态类中,封装一下
注销 :在Applicaton中 onTerminate()中注销
跳转方式 :
1) ARouter.getInstance().build("路径").navigation(); //和注解路径一致
2)带参传
3)接收参数 ,我们需要在目标界面,使用Autowired注解
值得注意的是,只有当 @Autowired(name = "test"),也就是key标签一致的情况下,才可以获取到对象的值,如果不写标签名,结果会为null 。为了规避每一个可能会遇到的风险,建议在@Autowired里面 都写上与之对应具体的key名。
4)界面跳转动画,直接调用withTransition,里面传入两个动画即可(R.anim.xxx)
5)使用URI进行跳转
ARouter框架也可以使用URI进行匹配跳转,代码也很少,只需匹配路径一致即可完成跳转:
6)Fragment的跳转也可以参照Activity跳转,第一步依旧是先写上类注释,然后是强转,代码如下
7)拦截器的使用 ,priority数字越小,优先级越高 ,拦截器方法越先执行
8)ARouter如何实现类似startActivityForResult()?
以上就是ARouter的应用,希望有所帮助,Star !!!