在進行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, onl oadMore = { isLoadMore = true scope.launch { delay(2000) isLoadMore = false } }, loadMore = { offset, state -> // LoadMoreDefaultView(state, isNoMore)(此代碼在app下simple里) // 你的加載View
... }) {
// 加載內容
...
}
組合使用
LoadMoreLayout(loadMoreState = isLoadMore, onl oadMore = { 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
... }) { //內容
... } }
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/541916.html
標籤:其他
