国产化驱动经济自主性与科技创新的未来之路
590
2022-10-27
利用主流开源库搭建mvp模式框架
MVP框架
项目用的是MVP + RxJava + Dagger2 + Retrofit + okhttp
说明:
1)所有网络请求限制了不能在activity里面和Fragment里面发起,必须在MVP的presenter里面进行网络请 求这样便于管理MVP的View与presenter的代码 2)如果业务逻辑需要,一定要在Activity和Fragment里面发起网络请求,那么可以通过Application的 mAppComponent对象,获取data module的DataManager对象,调用网络请求的client
工程结构:
工程分为两个主要的moduleapp module:主工程模块(包含各种基类\MVP\工具类\自定义view) 基类: 普通Activity的基类 --> BaseActivity(这个基类里面限制了网络请求) 普通Fragment的基类 --> BaseFragment 封装了RecyclerView列表带上拉刷新下拉加载的Fragment基类 --> BaseRefreshRecyclerFragment 说明:封装的RecyclerView对象 --> mRecyclerView 封装的下拉刷新对象 --> mRefreshLayout 封装的Adapter对象 --> mAdapter 封装的LayoutManager对象 --> mLayoutManager MVP: 关联了MVP的Fragment基类 --> MVPFragmentView 说明:示例代码参考工程Zipfragment类 关联了MVP的Presenter基类 --> MVPFragmentPresenter 说明:示例代码参考工程ZipPresenter类
APP层:使用开源框架
data 层:使用开源框架
rxjava 核心Observable(被观察者)可以理解为事件的发送者 Observer(观察者)Observer可以理解为事件的接收者,就好像快递的接收者 Subscriber (订阅)Subscriber 绑定两者,请求接口和请求回来的数据 okhttp 用于网络请求 Retrofit 是把所有的网络请求封装起来 结合rxjava +okhttp + Retrofit com.facebook.stetho:stetho okhttp- 直接在浏览器抓包chrome://inspect 要翻墙或者-chrome inspect 离线调试-工具包 klog 用于日志输出类同 logger ,可查看具体打印位置,logger基于klog封装 LocalCache 文件,对象,等等等等
部分简单实用介绍
(其实里面还有好多巴多实用的没写出来/笑哭)
BaseMultiItemQuickAdapter 多类型的使用
RxJava+Retrofit 一次合并多个请求代码片段如下
@Override public void refresh(int menuVersion, int menuSid, int settingsId, int cityId, int provinceId) { //创建一个被观察者 Observable
rxbus 不同的fragment进行数据传递
多界面(如登录注册验证码, 设置之类)不用activity跳转,fragment自由切换 (上述都有支持)
自定义控件有
ExactRefreshLayout 准确度高的下拉刷新,手势只有在往下的时候才出现下拉的球 RecycleViewDivider RecycleView自定义分割线 横向,纵向,图片,颜色,都支持 SimpleToolbar 全局的toolbar,包括了,左边返回 中间标题,右边关闭,右边第二个图标 (具体还可拓展,根据自己需求来,里面跟多精彩巧妙设计,等待大家去自行发掘) Android进阶汇Q群:515769388 终于写完了,第一次正儿八经上传github,累死了,不过回头看看,再累也是值得滴~,别忘记点星星啊,虽然我不想出名,就是满足下我虚荣心 ,大家一起学习,共同进步(*^^*)嘻嘻__
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~