我有两个按钮切换到下一个事件列表和前一个事件列表。
当我去下一个\上一个事件时,滚动保持在下面的某个地方。但我需要“收回”它。
我正在尝试:
scrollViewEventDetails.pageScroll(ScrollView.FOCUS_UP);
和:
scrollViewEventDetails.scrollTo(0, 0);
但它不起作用。请帮助!
答案 0 :(得分:31)
你应该写下:
scrollViewEventDetails.fullScroll(View.FOCUS_UP);//if you move at the end of the scroll
scrollViewEventDetails.pageScroll(View.FOCUS_UP);//if you move at the middle of the scroll
答案 1 :(得分:20)
这对我不起作用:
scrollViewEventDetails.fullScroll(View.FOCUS_UP); //if you move at the end of the scroll
这对我有用:
scroll_view.smoothScrollTo(0,0);
答案 2 :(得分:14)
scrollview.pageScroll(View.FOCUS_UP);
更加一致,对我有用。 :)
答案 3 :(得分:2)
这些电话的时机至关重要。 getViewTreeObserver()。addOnGlobalLayoutListener对我不起作用,但在我的活动中使用了onWindowFocusChanged回调:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
mScrollView.fullScroll(View.FOCUS_UP);
}
}
答案 4 :(得分:0)
我知道这是一个旧帖子,但有一个原因,代码将在某些地方工作,而不是其他地方。如果在错误的位置调用它将被主线程中断,特别是如果ScrollView必须滚动很远的距离。因此,将您的调用放在自己的线程中。固定的。
"test1"