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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 23:15:15