Jetpack Compose添加上层View后重组失效,疑与Blur有关
Compose界面冻结、加载指示器无法隐藏问题排查与说明
问题场景
- 在个人资料页面点击手机号单元格后,后台请求用户手机号可修改状态,同时展示
CircularProgressIndicator加载指示器 - 当接口返回不可修改时,在容器上层添加自定义错误视图,此后界面完全冻结,
CircularProgressIndicator无法随isLoading状态变更隐藏 - 点击界面其他区域后,UI才恢复正常渲染,状态更新生效
- 尝试调用容器的
validate()方法,无法解决该问题
相关代码片段
if (rightIconId != null && !isLoading) { RightIcon() } else if (isLoading) { CircularProgressIndicator() }
问题根因
经排查确认,该问题是Blur模糊效果导致的Compose UI渲染异常,属于官方已知问题,对应问题追踪编号:266807258(该问题记录了Blur效果会引发UI渲染阻塞、状态变更无法触发重组等异常表现)
临时处理方案
- 临时移除Blur效果,可验证UI状态更新是否恢复正常
- 持续关注官方对该问题的修复进度
- 若需保留Blur效果,可尝试在状态变更后通过
key修饰符或手动触发重组的方式,强制UI刷新
内容的提问来源于stack exchange,提问作者Zakhar Rodionov
相关产品推荐
相关产品推荐

