如果你看到这个仓库,非常荣幸,如果想要用于您的项目中,建议先看源码,因为这是我用来做外包用来快速开发的库,里面很多内容适合我的项目但不一定适合您的项目,当然,如果需要,您可以clone源码中的部分代码用于您的项目中,如有雷同,不甚荣幸
// 支持AndroidX
// quicklib(Base)
implementation 'com.sdwfqin.quicklib:quicklib:3.3.0'
// 如果使用butterknife请添加【可选】
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
// 支付模块
implementation 'com.sdwfqin.quicklib:paylib:3.1.0'
// Android 图片加载库(Glide封装)
implementation 'com.sdwfqin.quick:imageloader:3.2.0'
// Android 自定义View组件
implementation 'com.sdwfqin.quick:widget:3.2.0'
==================== AndroidX 分界线 ====================
// 不支持AndroidX
// quicklib(Base)
implementation 'com.sdwfqin.quicklib:quicklib:2.3.1'
// 如果使用butterknife请添加【可选】
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
// 支付模块
implementation 'com.sdwfqin.quicklib:paylib:1.1.1'
// Android 图片加载库(Glide封装)
implementation 'com.sdwfqin.quick:imageloader:2.0.2'
// Android 自定义View组件
implementation 'com.sdwfqin.quick:widget:1.0.7'
最低支持api19
minSdkVersion 19
targetSdkVersion 29
-
quicklib
依赖QMUI
,需要在主项目中配置QMUI
的styles
,可参考app
项目中的相应代码。V3.2+使用的QMUI
2.0或更高版本,请参考app
中的theme.xml
,主题请继承QuickTheme
-
需要注意quicklib中的QuickInit类,需要的话请在Application中初始化(一般用不到)。
-
quicklib
、widget
这几个模块因为项目引入了AndroidUtilCode
,所以需要在Application
初始化Utils.init(this);
-
请在module的
build.gradle#android
中添加如下代码:compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
-
BaseActivity
集成了QMUITopBarLayout
,默认集成沉浸式状态栏(状态栏背景与TopBar背景相同),如需使用直接使用mTopBar
调用相应方法即可,如果不需要使用请手动调用mTopBar.setVisibility(View.GONE);
隐藏。 -
因状态栏背景可能会与状态栏字体图标冲突,如有冲突请手动修改状态栏字体图标背景色,可参考
app
下面的SampleBaseActivity
// 设置状态栏黑色字体图标 QMUIStatusBarHelper.setStatusBarLightMode(mContext); // 设置状态栏白色字体图标 QMUIStatusBarHelper.setStatusBarDarkMode(mContext);
-
BaseActivity
集成了侧划关闭组件,如需关闭某个页面请在对应Activity
覆写protected boolean canDragBack()
@Override protected boolean canDragBack() { return false; }
-
需要在
Application
中添加如下代码:QMUISwipeBackActivityManager.init(this);
因支付宝SDK改用aar打包,所以使用时需要添加如下代码
-
在您项目根目录的
build.gradle
中,添加下面的内容,将libs
目录作为依赖仓库allprojects { repositories { // 添加下面的内容 flatDir { dirs '../libs' } // ... jcenter() 等其他仓库 } }
-
请将支付宝的aar文件放入您项目根目录的
libs
目录中(没有可以新建,文件名字不要变,文件夹名字跟上面的名字匹配起来就可以)
- 如果使用Mvc模式,直接继承BaseActivity/BaseFragment即可
- 如果使用Mvp模式,需要继承MvpActivity/MvpFragment,并且Contract接口或Presenter/View接口需要继承BaseView与BasePresenter,Presenter实现类可以直接实现Presenter接口也可以继承SamplePresenter类并实现Presenter接口,他们的区别是SamplePresenter里面实现了BasePresenter的接口处理了View绑定
- 网络部分可以参考DemoApp下面的
mvpretrofit
可参考Sample混淆文件
热更新(Tinker)、Retrofit封装可参考Sample
- quicklib
文件名称 | 功能 |
---|---|
BaseActivity | |
BaseFragment | |
BaseMvpActivity | |
BaseMvpFragment | |
RxPresenter | Presenter层封装 |
WechatShareTools | 微信分享工具类 |
ImagePreviewActivity | 图片预览Activity(多图/单图) |
BaseWebView | ViewActivity基类 |
WebViewActivity | 传入url即可 |
WebViewLoadDataActivity | 针对非url链接的网页 |
GsonUtil | Gson工具类 |
RxSchedulersUtils | compose()统一线程处理 |
RxTimerUtil | RxJava定时任务 |
EventBusUtil | EventBus工具类,使用时需要配合Base基类 |
HintDialog | 可配置提示弹窗 |
AppManager | Activity栈管理 |
QuickExecutor | 线程池 |
ImageWatermarkUtils | 图片水印工具类 |
IClickListener | 按钮防抖 |
- paylib
文件名称 | 功能 |
---|---|
AliPayTools | 支付宝支付工具类 |
WechatPayTools | 微信支付工具类 |
- widget
文件名称 | 功能 |
---|---|
PictureUploadView | 九宫格图片上传view |
PayPwdInputView | 自定义验证码/密码View |
ClickViewPager | 可以点击的ViewPager |
DecimalEditText | Double类型的EditText,支持限定小数点后的位数 |
NoScrollViewPager | 可以禁止左右滑动的ViewPager |
TrembleButton | 可以漂浮颤抖的按钮 |
WrapContentHeightViewPager | 处理NestedScrollView嵌套Viewpager+RecyclerView |
AutoPollRecyclerView | 跑马灯样式的RecyclerView(自动滚动) |
AmountView | 购物车商品数量选择 |
自动换行的布局管理器(流式布局),建议使用flexbox-layout代替 | |
ControlViewPager | 可动态禁止(允许)左滑/右滑的ViewPager |
StatusPlaceholderView | 沉浸式状态栏占位 |
WindowFloatView | 悬浮窗基类 |
- imageloader
文件名称 | 功能 |
---|---|
ImageLoader | 图片加载 |
CircleProgressView | 加载进度View |