AFW-router
提供统一的页面跳转、回调、参数解析、协议处理
结合AFW ui库,我们希望我们针对activity、fragment、dialog等有一个统一的跳转方式,甚至包括一些协议的处理,以及参数的传递和解析
回调
首先定义回调接口
1 | public interface RouterCallBacker<T> { |
在发起跳转的时候,根据判断是否有回调者进行关联key的生成并缓存以及向下传递;
在回调方,直接通过key进行结果回调,这样就简单实现了跳转回调的功能。
参数传递解析
因为需要提供一个统一的使用体验,所以在参数传递的时候考虑bundle进行传递;在Activity中通过Intent extra传递,fragment通过arguments传递。
参数解析的使用;对于传递的参数,其实在业务中只有直接拿来用的需求,所以怎么取值等操作都是重复性的,所以这边利用注解实现了传递值的读取,使得业务可以直接拿来使用。
1 | private static List<Field> parseField(Class<?> clazz) { |
1 | private static void setupField(Object target, Field field, Bundle bundle) { |