前言
Jetpack Compose光下拉刷新,官方就提供了三种不同的方式,使用的依赖也不相同,特别的混乱。
所以在网络上看到的示例可能找不到依赖就是这个原因。
其中
- swiperefresh 被废弃了
- PullToRefreshContainer 需要更改依赖
- PullRefresh 目前还没发布
也就是说只有前两种可以使用,如果不嫌弃代码中有废弃红线的标记,可以使用第一种,要么使用第二种。
swiperefresh
导入
1 | implementation("com.google.accompanist:accompanist-swiperefresh:0.30.1") |
使用
1 | import android.util.Log |
PullToRefreshContainer
把libs.version.toml中的
1 | [libraries] |
替换为
1 | [versions] |
build.gradle.kts中
1 | implementation(libs.androidx.material3) |
替换为
1 | implementation(libs.androidx.material3.android) |
两者的对比
material3
是标准的库,能保证在各个平台上迁移代码,而material3-android
是仅支持安卓的库,一些Android上新添加的组件会先在material3-android
上发布,稳定后可能再在material3
发布。
需要注意的是:
这两个库不能并存。
示例
1 | import androidx.compose.foundation.layout.Box |
PullRefresh
Compose Material 1.3.0 才支持 但是1.3.0 还没正式发布。
https://developer.android.google.cn/jetpack/androidx/releases/compose-material3?hl=zh-cn
https://google.github.io/accompanist/swiperefresh/#migration
1 | var refreshing by remember { |
加载更多
1 | val listState = rememberLazyListState() |