BottomSheet报错:Unresolved reference: fraction 问题求助
解决
sheetState.progress.fraction未解析引用问题 问题原因
你遇到的Unresolved reference错误,是因为Jetpack Compose Material库版本更新后,BottomSheetState的progress属性被移除。旧版本(如Compose Material 1.3.x及更早)存在该属性,但后续版本(1.4.x+)重构了BottomSheet状态管理API,废弃了progress字段。
解决方案
你可以通过BottomSheetState的offset、collapsedOffset和expandedOffset属性手动计算滑动进度的fraction值,替代原来的progress.fraction:
步骤1:添加计算逻辑
在你的Composable代码中添加fraction的计算逻辑:
val fraction = when { sheetState.isCollapsed -> 0f sheetState.isExpanded -> 1f else -> { val totalRange = sheetState.expandedOffset - sheetState.collapsedOffset (sheetState.offset.value - sheetState.collapsedOffset) / totalRange } }
步骤2:替换原有代码
将原来的sheetState.progress.fraction替换为上面计算出的fraction:
Text( text = "Toggle Sheet fraction $fraction", color = Color.White )
额外说明
- 若想临时保留旧版API,可锁定Compose Material版本到1.3.1,但不推荐——旧版本存在已知bug且不再维护。
- 确保所有Compose依赖版本统一,避免因版本混合导致的API不一致问题。
内容的提问来源于stack exchange,提问作者Saurabh Jain
相关产品推荐
相关产品推荐

