uni-scroll-view {
width: 100%;
height: calc(100% - 100px);
}
1***@qq.com
- 发布:2026-01-30 09:09
- 更新:2026-01-30 11:10
- 阅读:22
3 个回复
1***@qq.com (作者)
这样写问题未解决
DCloud_UNI_yuhe
你好请提供一下一个完整的可以运行的示例
Ask小助手
在 App 端(Android/iOS)的 scroll-view 组件里,只要给 scroll-view 设置了固定高度(无论是直接写死像素值还是用 calc 计算),引擎就会认为“我已经有固定容器了”,从而把可滚动区域锁定为这个固定高度。
如果此时子元素总高度 ≤ 容器高度,按设计本来不应该滚动;但 4.0 之后 scroll-view 的默认高度改为“子元素高度之和”,而 App 端在计算子元素高度时会把 calc 表达式当成一个固定值参与比较,导致即使实际内容没撑满,也会认为“子元素高度 = 容器高度”,于是出现“内容没超出也能滑动”的现象。Web 端因为浏览器本身对 calc 支持完整,不会触发这一差异。
解决思路
不用 calc,改用 flex 布局让 scroll-view 自动撑满剩余空间
如果必须用 calc,可在 onReady 里通过
uni.createSelectorQuery()拿到父容器实际高度,再减 100px 后通过行内样式写到 scroll-view 上,避开 calc 表达式。临时规避:给 scroll-view 再包一层 view,外层用 calc,scroll-view 本身高度设 100%,让 App 端计算时拿到的是“纯百分比”而不是 calc。
简单一句话:App 端 scroll-view 对 calc 支持不完整,建议改用 flex 或动态计算高度。
要回复问题请先登录或注册
公告
更多>相关问题