我有一个按钮,可以自动返回到顶部位置进入嵌套滚动视图。当滚动不在进行中时,它的工作原理就像一个魅力,否则如果当前滚动还在进行中,滚动到顶部,但直接滚动一点点燃后,刚刚...
我写了这个方法:
private void scrollToTop() {
mScrollView.stopNestedScroll();
mScrollView.postDelayed(new Runnable() {
@Override
public void run() {
mScrollView.scrollTo(0, 0);
}
}, 50);
}
你有一些想法的家伙停止当前滚动并立即转到顶部?
非常感谢
2条答案
按热度按时间b4lqfgs41#
正确的方法是在你滚动时拦截用户的触摸。这需要你扩展
ScrollView
覆盖scrollTo
和onInterceptTouchEvent
方法,并且在列表滚动时禁用用户触摸,在滚动完成后返回触摸。所以序列应该是这样的:
1.调用
scrollTo
滚动到指定位置1.启用标志以禁用触摸事件并开始滚动
1.滚动完成且状态变为空闲**禁用标志时
附言:我可以提供代码的例子,但似乎你有更多的专业知识比我在写代码。干杯!
下面是一个代码片段:
mgdq6dx12#
一个棘手的解决方案
此方法保持不变,检测滚动和滚动到达顶部(Kotlin代码)