一个懒人模块化 mvp 框架,可以拿来即用,代码规范标准,已内嵌了大量开发中常用的功能
1.mosby/mvp框架的延伸与拓展;
2.刷新与加载列表基类 mvp;
3.glide 简单封装;
4.model 基础类;
5.rxjava3+okhttp3+retrofit2 的网络请求封装;
6.utils工具包;
7.arouter:阿里路由配置;
1,继承BaseActivity会通用一个根布局文件,包含了头布局,空布局,网络异常,数据异常(下拉刷新和加载更多默认关闭,只有在列表界面才默认开启),默认框架自行处理显示方式,这样的好处便是便于统一维护,通过显隐拓展性很强;
2 只要设置setEventTag(this) 方法,默认注册eventbus,解绑已经默认处理了;
3,权限处理调用,rxPermissions(String tip, String... permissions),重写rxPermissionsSuccess()便可以得到成功结果,失败默认跳转权限设置;
4,扫一扫,选图扫码默认放在扫描界面,获取权限后只需调用startScan(),重写onScanSuccess(String result) onScanFailed() 便可以得到结果;
5,多图选择,或者视频:获取权限后调用matisseSelect(et mimeTypes, int maxSelect),拍照默认在选择页面,重写onMatisseSelectResult(List urls) 得到结果即可;
BaseRecycleViewActivity 继承于 BaseActivity,用的是强大的BaseRecyclerViewAdapterHelper结合SmartRefreshLayout,强强联合,所以列表处理界面极为简单,可以实现各种复杂的界面;
1, 布局无需重写,目前布局适用任何布局界面;
2, createPresenter() 定义Presenter;
3, createAdapter(), 创建适配器;
4, loadData(boolean isLoadMore) 请求网络数据;
就这么简单,结合headview,footview,极为复杂的界面都可完成,因为力求开发简单,基类做了很多通用的处理,如果不需要,自行去掉;例如阿里路由绑定,ButterKnife绑定等;
forNet(NetService.getInstance().getCommonService().getNews(getNetJson().set_token().set_object("status","0").set_object("pageIndex", page).builder()), new MineObserver(mMvpView) ());
1,当新加的依赖冲突,不建议个例化处理,建议放在module.build.gradle处理 ,在此运用了一个例子:glide-transformations与dialog 高斯模糊.so冲突;解决参照
2fileprovider,前面已applicationId前缀,防止多包不能共存的问题
3,依赖里butterknife 问题,建议用GenerateFindViewById
4,一些values包下文件文件位置存放,路由的配置等等