主要实现内部为百分比圆形水波纹,外部带圆弧边框,两者进度效果保持一致
https://www.jianshu.com/p/e711e22e053e
https://www.yii666.com/blog/117799.html
可以看一下这两个案例
本小节笔者将以ARouter
为例,阐述页面间路由库的一些局限性,以及导致这些局限性的原因。
毫无疑问,ARouter
提供了足够强大的页面间路由跳转能力,它也确实揽括了业内绝大多数开发者的青睐,在开源之初,作者对其的定义就是Android
平台上的 页面路由框架 。
这也变相导致自身对UI
层级的跳转能力很强,但对数据通信的支持很薄弱。
什么是对数据通信的支持呢?读者知道,除了可见的UI
交互,数据的交互也非常频繁,比如通过组件间通信,向用户组件获取当前用户信息、向订单组件获取某个订单数据等等。
ARouter
并不支持这些吗?实际上并非如此,ARouter
自身提供了IProvider
接口实现组件间服务的管理,并提供服务的自动注册和依赖注入。
但遗憾的是,由于ARouter
自身设计原因,其初始化只针对当前进程,这也导致了其路由表的自动注册和拦截器相关机制都是单进程的。
而在目前国内多进程、插件化的多元发展环境下,若想向其它进程的服务直接获取数据,ARouter
是无能为力的,需要开发者通过AIDL
等方式来自己实现。