FastLib 是一个整合了常用主流开源项目的 Android 快速搭建UI库, 其中包含 Retrofit、RxJava 、RxAndroid、RxLifecycle等三方库, 并且提供较多的基础Activity与Fragment如快速搭建微信类tab+fragment 的FastMainActivity、快速搭建包含TitleBar的FastTitleActivity及FastTitleFragment、快速搭建列表刷新的FastRefreshLoadActivity及FastRefreshLoadFragment;并提供快速配置Retrofit相关功能的FastRetrofit:解决添加统一请求header及多url等常见功能。
FastLib 只是一个快速搭建UI及网络请求的库,是常用三方库的一个封装集合,本身不具备框架特性。可在此基础上做MVP、MVVM等框架的扩展。
wiki 基于FastLib 2.2.12 、Android Studio 3.3.1、Gradle 4.10.1版本编写,后期重大变更会同步更新。
Demo中使用到的网络请求api来源于豆瓣API V2 版权及最终解释权归d豆瓣所有,如有侵权请联系删除!
- 基于Retrofit2.x及RxJava2.x的网络请求封装、网络请求与生命周期绑定、快速观察者、快速loading观察者、快速返回常用错误
- 常用功能库二次封装方便调用:Glide加载图片封装GlideManager、TabLayout+ViewPager Fragment切换封装TabLayoutManager、Logger日志打印封装LoggerManager
- 多种常用界面布局:标题+多状态+下拉刷新+列表、标题+ViewPager等方便快速创建常用布局增加layout复用
- Fragment 懒加载封装
- 快速实现Activity滑动返回、下拉刷新+自动加载更多、沉浸式状态栏+导航栏等
- 解决一些老大难问题:Tab+Fragment 当Activity回收后Fragment 重叠-FastMainActivity、软键盘无法弹起-KeyboardHelper、状态栏文字转换-StatusBarUtil、不同Fragment切换状态栏文字颜色变换-BasisFragment+StatusBarUtil、Android 7.0 fileprovider-FastFileUtil、Android 9.0 network security policy问题等
- 提供众多常用工具类:ToastUtil-统一样式吐司、FastFormatUtil-快速格式化时间、字节单位、double类型小数点保留几位、SizeUtil-尺寸转换屏幕宽高获取、SPUtil-暂存数据等
其它功能请在demo中发现,详细使用请看wiki
1、2.2.13_beta12版本开始自带混淆规则,并且会自动导入,正常情况下无需手动导入。
2、2.2.13_beta12以下版本可参考proguard-rules.pro
重大更新日志 其它版本参看Release
-
2.3.2
- 优化: 优化FastManager初始化init逻辑,FastLib自动初始化解决多进程异常问题
- 优化: 将eventbus、bga-swipebacklayout、UIWidget:tab-layout 使用compileOnly开发者根据需要导入
-
2.2.13
- 新增: 下拉刷新接口IFastRefreshView及标题栏IFastTitleBarView
-
2.2.11-androidx
- 重大变更: 2.2.11的androidx版本-起始版本
-
2.2.11
- 最后一个support版本以后版本为androidx
-
2.2.10-beta6
- 重大变更:重构大部分代码及实现方式删除许多类及实现方法包括三方库慎重升级与之前版本有很大差异
- 优化:BasisFragment 控制是否为单Fragment 方法
- 优化:调整ActivityFragmentControl 将状态栏及导航栏控制增加
- 优化:多状态管理StatusLayoutManager调整完成
- 优化:滑动返回控制swipeBack功能新增各种回调功能
- 优化:将原默认配置方法调整到最终实现类功能
- 新增:增加友盟统计功能演示
- 新增:新增首页演示其它三方库状态栏及导航栏功能控制
- 新增:个人MineFragment中选择头像功能三方库状态栏及导航栏控制示例
- 优化:UI全局控制相关回调并调整三方库Activity控制
- 优化:新增FastRetrofit 下载/上传功能
- 优化:新增FastRetrofit 控制多BaseUrl方式
- 新增:新增Demo检查版本功能试验下载文件功能
- 删除:删除原多状态布局相关配置
- 修复:修改FastRefreshActivity 设置Adapter错误BUG
- 升级:升级部分三方库版本
- 修复:删除IHttpRequestControl判断避免http错误时无法全局控制BUG
- 优化:修改解析method方法增加对get方法兼容
- 优化:修改ToastUtil 增加子线程调用自动切换主线程操作
- 优化:优化下载功能新增FastDownloadRetrofit并新增格式化文件方法FastFormatUtil#formatDataSize
- 修复:修复FastRetrofit无法删除单个header问题
- 优化:优化上传文件并通过新增的FastUploadRequestBody及FastUploadRequestListener实现单个/多个文件 上传进度监听 可参看 MineFragment 示例
- 优化:FastFileUtil 安装App在Android 7.0以下版本兼容性
- 新增:新增IMultiStatusView 用于设置StatusLayoutManager 属性
- 优化:调整setMultiStatusView位置并抽离设置StatusLayoutManager相关属性
- 优化:注释及代码规范调整
- 优化:调整列表刷新控制多状态配置及itemClick事件
- 优化:优化下载功能统一使用全局设置Retrofit
- 优化:优化LoggerManager可设置自定义属性
- 优化:优化FastRetrofit日志打印控制--json格式打印
- 新增:demo新增拖拽调整列表顺序功能
- 新增:FastFileUtil及fast_file_path以适配更多文件系统及开发者自定义
-
2.2.9-beta6
- 重构设置全局TitleBarView设置方式(通过TitleBarViewControl实现可参看AppImpl实现类)
-
2.2.9-beta5
- library 直接compile UIWidget core 3.1.0版本
-
2.1.5 更新
- 新增众多全局设置TitleBarView属性、Adapter加载动画、SmartRefreshLayout刷新配置、Glide加载占位Drawable属性等控制的FastConfig类用于全局设置应用通用属性并减少部分冗余代码及冗余drawable资源文件
-
2.1.0 更新
- 将部分系统及第三方库在FastLib里使用provided编译,实际项目中需要根据项目需要compile合适的版本避免版本重复
折叠屏效果一览
快速实现页面下拉刷新-全局控制及局部个性化-参考WebActivity、FastRefreshActivity、MineFragment
虚拟导航栏控制-参考AppImpl类 NavigationBarControl接口实现注释说明
模拟器软键盘控制
华为可隐藏软键盘控制
华为全面屏手势控制
开启GPU过度绘制检测+GPU呈现模式分析
DoraemonKit集成效果(一定要手动开启 悬浮窗权限
)-包括沉浸式及UI微调
Gradle集成-尽量使用正式版本
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
dependencies {
implementation 'com.github.AriesHoo:FastLib:x.y.z'
}
Maven集成
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependency>
<groupId>com.github.AriesHoo</groupId>
<artifactId>FastLib</artifactId>
<version>x.y.z</version>
</dependency>