You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Material 3中如何实现下拉刷新?升级后无法导入相关API

在Material 3中实现下拉刷新的方案

Material 3库本身不包含下拉刷新相关API,原Material 2中的rememberPullRefreshState和pullRefresh Modifier已被抽离到独立的androidx.compose.material:material-pullrefresh库中,按以下步骤即可实现:

1. 添加依赖

在项目构建文件(如build.gradle.kts)中引入下拉刷新库:

api(libs.androidx.compose.material.pullrefresh) 
// 对应坐标:group = "androidx.compose.material", name = "material-pullrefresh"

若未使用版本catalog,可直接写为:

implementation "androidx.compose.material:material-pullrefresh:<latest-version>"

(替换<latest-version>为当前最新稳定版本,如1.3.1)

2. 导入必要包

在Compose文件中导入下拉刷新相关API:

import androidx.compose.material.pullrefresh.PullRefreshIndicator
import androidx.compose.material.pullrefresh.pullRefresh
import androidx.compose.material.pullrefresh.rememberPullRefreshState

3. 编写下拉刷新逻辑

用法和Material 2中逻辑一致,需配合PullRefreshIndicator显示刷新状态,示例代码如下:

val pullRefreshState = rememberPullRefreshState(
    refreshing = loadStatus is LoadState.Loading,
    onRefresh = { photosResponse.refresh() }
)

Box(
    modifier = Modifier
        .fillMaxSize()
        .pullRefresh(pullRefreshState)
) {
    // 你的内容组件(如列表、网格等)
    PhotoListContent()

    // 下拉刷新指示器
    PullRefreshIndicator(
        refreshing = loadStatus is LoadState.Loading,
        state = pullRefreshState,
        modifier = Modifier.align(Alignment.TopCenter)
    )
}

注意事项

  • 需将PullRefreshIndicator与内容组件放在同一布局容器内,确保指示器能正确悬浮在内容上方
  • 刷新状态的判断逻辑可沿用你之前的实现逻辑

内容的提问来源于stack exchange,提问作者user924

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 03:23:14