我有以下 Kotlin 代码:
val scrollView = parent as? NestedScrollView
scrollView?.let {
it.smoothScrollTo(0, 500)
}
这段代码第一次调用 ScrollView 时,scrollY 为 0,它成功地将 View 在 y 中滚动了 500。但是,当第二次调用它时,它会再滚动 500(而不是在 y 中将它滚动到 500,它现在将在 1000,以此类推连续调用。
知道这里发生了什么吗?当我深入了解 NestedScrollView
的代码(并最终深入了解最终调用的 OverScroller 的
startScroll
方法时,我可以看到 distance
该调用在 y 轴上的参数为 0 - 因为除了第一次调用我的代码之外的任何其他时间都应该为 0。
编辑:重要信息 - 我尝试使用 ScrollView
而不是 NestedScrollView
并且它按预期工作,但是因为我的 ScrollView
需要在 SwipeRefreshLayout
中 我需要它是 NestedScrollView
否则下拉总是刷新而不是滚动。
最佳答案
关于Android NestedScrollView.smoothScrollBy() 滚动太远,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47739617/