自己常用的一些工具的合集
实现简单通用的 OkHttp 上传和下载的进度监听。用法:
// 初始化 client 时,添加下拦截器
OkHttpClient.Builder()
.addInterceptor(ProgressIntercept)
.build()
// 上传和下载进度监听
Request.Builder()
.uploadProgress(object: OkUploadListener {
override fun upload(curr: Long, contentLength: Long) {
// 当前上传的长度和需要上传的总长度
Log.d(tag, "Upload: $curr/$contentLength")
}
})
.downloadProgress(object: OkDownloadListener {
override fun download(curr: Long, contentLength: Long) {
// 当前下载的长度和需要下载的总长度
Log.d(tag, "Download: $curr/$contentLength")
}
})
BehaviorScrollView
是对嵌套滚动共性逻辑的封装,实现了对 touch 事件、嵌套滚动和 fling 的拦截和处理的通用逻辑,支持多级嵌套和水平垂直切换。方便复用和扩展,可以十分轻松地实现底部弹层、下拉刷新、下拉二楼、划动删除等嵌套滚动场景。
记录了自己学习嵌套滚动造轮子的过程,总结产出了嵌套滚动的处理方式,并在此基础上产出了上面的 BehaviorScrollView。
allprojects {
repositories {
maven { url "https://jitpack.io" }
}
}
dependencies {
implementation 'com.github.funnywolfdadada:HollowKit:1.6'
}