Jetpack Compose中PullToRefreshContainer空白灰色圆圈始终显示问题
Jetpack Compose 1.6.4 PullToRefreshContainer 加载/刷新后灰色圆圈持续显示问题
我在使用Jetpack Compose 1.6.4版本时遇到异常:PullToRefreshContainer的空白灰色圆圈在首次加载或刷新完成后始终处于显示状态。
实现代码如下:
val pullRefreshState = rememberPullToRefreshState() Box( modifier = Modifier .fillMaxSize() .nestedScroll(connection = pullRefreshState.nestedScrollConnection) ) { // Another contents PullToRefreshContainer( modifier = Modifier.align(alignment = Alignment.TopCenter), state = pullRefreshState, ) }
问题截图:
解决思路:
绑定刷新状态到业务逻辑:
rememberPullToRefreshState必须传入isRefreshing参数,否则容器无法识别刷新完成的时机。修改状态初始化逻辑:val isRefreshing by remember { mutableStateOf(false) } val pullRefreshState = rememberPullToRefreshState(isRefreshing = isRefreshing)在你的刷新任务开始时将
isRefreshing设为true,任务结束后设为false,让容器自动隐藏加载圆圈。确认嵌套滚动的正确应用:
nestedScroll修饰符需要作用在内部包含可滚动组件(如LazyColumn)的容器上。如果没有可滚动内容,嵌套滚动机制无法正常触发状态重置,导致加载圆圈一直显示。排查版本兼容性问题:Jetpack Compose 1.6.x的PullRefresh组件存在已知的状态异常bug,尝试升级到最新稳定版(如1.7.x)或降级到1.5.x版本,验证问题是否解决。
自定义容器可见性逻辑:如果默认容器的状态判断不符合需求,可以手动控制可见性:
PullToRefreshContainer( modifier = Modifier.align(Alignment.TopCenter) .visible(isRefreshing || pullRefreshState.progress > 0), state = pullRefreshState, )仅在刷新中或下拉过程中显示容器,其他时机自动隐藏。
内容的提问来源于stack exchange,提问作者Binh Ho
相关产品推荐
相关产品推荐

