Compose 下拉刷新库——ComposeRefreshLayout
在进行Compose应用开发时,发现没有下拉刷新上拉加载,没有Android原生提供的SwipeRefreshLayout。
查看官方simple样例(https://github.com/android/compose-samples),在官方样例的基础进行简单封装,
编写的了ComposeRefreshLayout库(github:https://github.com/xiaoyu00/ComposeRefreshLayout)
ComposeRefreshLayout 是一个简单易用的下拉刷新库,代码简单易用,可自定义刷新头与上拉加载View。
效果展示
说明
因刷新头与上拉加载View全部为自定义,比较灵活,所以本库里不包含默认刷新头与加载View,效果中的刷新头与加载View代码在app目录下的simple里
引入
repositories {
...
maven { url 'https://jitpack.io' }
}dependencies {
implementation 'com.github.xiaoyu00:ComposeRefreshLayout:1.0.0'
}
下拉刷新
RefreshLayout(refreshingState = refreshing, onRefresh = {
refreshing = true
scope.launch {
delay(2000)
refreshing = false
}
}, refreshHeader = { offset, state ->
// RefreshDefaultHeader(state, offset)
// RefreshLottieHeader(state)
// 你的刷新Header(上面刷新头代码在app下simple里)
...
}) {
// 刷新内容
...
}
}
上拉加载(与下拉刷新使用方法相同)
LoadMoreLayout(loadMoreState = isLoadMore, onLoadMore = {
isLoadMore = true
scope.launch {
delay(2000)
isLoadMore = false
}
}, loadMore = { offset, state ->
// LoadMoreDefaultView(state, isNoMore)(此代码在app下simple里)
// 你的加载View
...
}) {
// 加载内容
...
}
组合使用
LoadMoreLayout(loadMoreState = isLoadMore, onLoadMore = {
isLoadMore = true
scope.launch {
delay(2000)
isLoadMore = false
}
}, loadMore = { offset, state ->
// LoadMoreDefaultView(state, isNoMore)(此代码在app下simple里)
// 你的加载View
...
}) {
RefreshLayout(refreshingState = refreshing, onRefresh = {
refreshing = true
scope.launch {
delay(2000)
refreshing = false
}
}, refreshHeader = { offset, state ->
//RefreshDefaultHeader(state, offset) (此刷新头代码在app下simple里)
// 你的刷新Header
...
}) {
//内容
...
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [翻译] 为什么 Tracebit 用 C# 开发
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· 2分钟学会 DeepSeek API,竟然比官方更好用!
· .NET 使用 DeepSeek R1 开发智能 AI 客户端
· 刚刚!百度搜索“换脑”引爆AI圈,正式接入DeepSeek R1满血版