-
支持 loading 加载数据
-
支持透明 loading 的加载数据
-
支持显示无数据
-
支持网络网络错误显示
-
支持 Fragment 的懒加载
-
支持最基本的下拉刷新、上拉加载更多
-
支持自定义 HeadView 和 FootView
-
支持自动刷新
-
支持启用、禁用下拉刷新
-
支持启用、进攻上拉加载更多
-
通用小菊花样式 DaisyRefreshLayout
-
通用小箭头样式 ArrowRefreshLayout
FlyTour 1.1.0 2019-03-34
-
增加了功能组件日期选择器 lib_time_picker
-
MVP 功能的一些优化
FlyTour 1.0.0 2019-01-26
- 初始版本,以车辆运动轨迹大数据采集为功能简单的实现了组件化和 MVP 的基本功能
功能演示
- 新闻下来刷新、无数据、无网络、新闻详情展示
- 新闻类型添加、新闻添加
主要功能
核心公共组件 lib_common
七的核心公用基类
public abstract class BaseActivity extends RxAppCompatActivity implements BaseView {
…
}
public abstract class BaseMvpActivity<M extends BaseModel,V,P extends BasePresenter<M,V>> extends BaseActivity {
…
}
public abstract class BaseRefreshActivity<M extends BaseModel, V extends BaseRefreshView, P extends BaseRefreshPresenter<M, V, T>, T> extends BaseMvpActivity<M, V, P> implements BaseRefreshView {
}
-
BaseFragment
-
BaseMvpFragment
-
BaseRefreshFragment
-
BaseAdapter
功能特色:
public boolean enableToolbar() {
return true;
}
public int onBindToolbarLayout() {
return R.layout.common_toolbar;
}
- 支持 loading 加载数据
public void showInitLoadView() {
showInitLoadView(true);
}
public void hideInitLoadView() {
showInitLoadView(false);
}
- 支持透明 loading 的加载数据
@Override
public void showTransLoadingView() {
showTransLoadingView(true);
}
@Override
public void hideTransLoadingView() {
showTransLoadingView(false);
}
- 支持显示无数据
public void showNoDataView() {
showNoDataView(true);
}
public void showNoDataView(int resid) {
showNoDataView(true, resid);
}
public void hideNoDataView() {
showNoDataView(false);
}
- 支持网络网络错误显示 ``` public void hideNetWorkErrView() {
showNetWorkErrView(false);
}
public void showNetWorkErrView() {
showNetWorkErrView(true);
}
- 支持 Fragment 的懒加载
private void lazyLoad() { //这里进行双重标记判断,必须确保 onCreateView 加载完毕且页面可见,才加载数据 if (isViewCreated && isViewVisable) { initData(); //数据加载完毕,恢复标记,防止重复加载 isViewCreated = false; isViewVisable = false; } } //默认不启用懒加载 public boolean enableLazyData() { return false; }
上拉下拉功能组件 lib_refresh_layout
-
支持最基本的下拉刷新、上拉加载更多
-
支持自定义 HeadView 和 FootView
-
支持自动刷新
-
支持启用、禁用下拉刷新
-
支持启用、进攻上拉加载更多
-
通用小菊花样式 DaisyRefreshLayout
-
通用小箭头样式 ArrowRefreshLayout
项目架构
-
集成模式:所有的业务组件被“app 壳工程”依赖,组成一个完整的 APP;
-
组件模式:可以独立开发业务组件,每一个业务组件就是一个 APP;
-
app 壳工程:负责管理各个业务组件,和打包 apk,没有具体的业务功能;
-
业务组件:根据公司具体业务而独立形成一个的工程;
-
功能组件:提供开发 APP 的某些基础功能,例如打印日志、下拉刷新控件等;
-
Main 组件:属于业务组件,指定 APP 启动页面、主界面;
-
Common 组件:属于功能组件,支撑业务组件的基础,提供多数业务组件需要的功能
MVP 架构
这是整个项目的 mvp 结构图:
- Activity 关系图:
《设计思想解读开源框架》
第一章、 热修复设计
-
第一节、 AOT/JIT & dexopt 与 dex2oat
-
第二节、 热修复设计之 CLASS_ISPREVERIFIED 问题
-
第三节、热修复设计之热修复原理
-
第四节、Tinker 的集成与使用(自动补丁包生成)
第二章、 插件化框架设计
-
第一节、 Class 文件与 Dex 文件的结构解读
-
第二节、 Android 资源加载机制详解
-
第三节、 四大组件调用原理
-
第四节、 so 文件加载机制
-
第五节、 Android 系统服务实现原理
第三章、 组件化框架设计
-
第一节、阿里巴巴开源路由框——ARouter 原理分析
-
第二节、APT 编译时期自动生成代码&动态类加载
-
第三节、 Java SPI 机制
-
第四节、 AOP&IOC
-
第五节、 手写组件化架构
第四章、图片加载框架
-
第一节、图片加载框架选型
-
第二节、Glide 原理分析
-
第三节、手写图片加载框架实战
第五章、网络访问框架设计
-
第一节、网络通信必备基础
-
第二节、OkHttp 源码解读
-
第三节、Retrofit 源码解析
第六章、 RXJava 响应式编程框架设计
-
第一节、链式调用
-
第二节、 扩展的观察者模式
-
第三节、事件变换设计
-
第四节、Scheduler 线程控制
第七章、 IOC 架构设计
-
第一节、 依赖注入与控制反转
-
第二节、ButterKnife 原理上篇、中篇、下篇
-
第三节、Dagger 架构设计核心解密
第八章、 Android 架构组件 Jetpack
-
第一节、 LiveData 原理
-
第二节、 Navigation 如何解决 tabLayout 问题
-
第三节、 ViewModel 如何感知 View 生命周期及内核原理
-
第四节、 Room 架构方式方法
-
第五节、 dataBinding 为什么能够支持 MVVM
-
第六节、 WorkManager 内核揭秘
-
第七节、 Lifecycles 生命周期
本文包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
LiveData 原理** -
第二节、 Navigation 如何解决 tabLayout 问题
-
第三节、 ViewModel 如何感知 View 生命周期及内核原理
-
第四节、 Room 架构方式方法
-
第五节、 dataBinding 为什么能够支持 MVVM
-
第六节、 WorkManager 内核揭秘
-
第七节、 Lifecycles 生命周期
[外链图片转存中…(img-uMC5rtYA-1714965569342)]
本文包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
[外链图片转存中…(img-wQFIuhw8-1714965569343)]
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!