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

Android:如何将NestedScrollView内的指定视图滚动到屏幕顶部

解决方案

问题根源

你用groupView.bottom作为滚动目标是错误的——这个值是视图底部在父布局中的坐标,而要让视图滚动到屏幕顶部,需要的是视图顶部相对于NestedScrollView内容区域的偏移量。

修正后的基础代码

val scrollTo = groupView.top // 获取视图顶部在父布局的偏移量
nestedSctollView.smoothScrollTo(0, scrollTo)

处理布局未完成的情况

如果是刚动态添加完视图就触发滚动,可能视图还没完成布局,导致获取的top值不准确,这时可以用post延迟到布局完成后执行:

groupView.post {
    val scrollTo = groupView.top
    nestedSctollView.smoothScrollTo(0, scrollTo)
}

适配padding/状态栏(可选)

如果NestedScrollView有顶部内边距,或者需要避开状态栏,可调整偏移量:

groupView.post {
    val scrollTo = groupView.top - nestedSctollView.paddingTop
    nestedSctollView.smoothScrollTo(0, scrollTo)
}

内容的提问来源于stack exchange,提问作者Malo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 13:42:02