Android:如何在顶部滚动ScrollView

我有两个button,切换到下一个事件列表和前一个。

当我去下一个\上一个事件,卷轴仍然在下面的某处。 但是我需要“倒带”起来。

我尝试着:

scrollViewEventDetails.pageScroll(ScrollView.FOCUS_UP); 

和:

 scrollViewEventDetails.scrollTo(0, 0); 

但它不起作用。 请帮忙!

Solutions Collecting From Web of "Android:如何在顶部滚动ScrollView"

你应该写下:

 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 

这不适合我:

 scrollViewEventDetails.fullScroll(View.FOCUS_UP); //if you move at the end of the scroll 

这对我工作:

 scroll_view.smoothScrollTo(0,0); 

scrollview.pageScroll(View.FOCUS_UP); 更一致,为我工作。 🙂

这些电话的时间是至关重要的。 getViewTreeObserver()。addOnGlobalLayoutListener没有为我工作,但在我的活动中使用onWindowFocusChangedcallback没有:

 @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus) { mScrollView.fullScroll(View.FOCUS_UP); } } 

我知道这是一个旧的职位,但有一个原因,代码将工作在一些地方而不是其他人。 如果在错误的地方调用它,会被主线程中断,特别是如果ScrollView必须滚动一个很大的距离。 所以把你的电话放在自己的线程里。 固定。

 (new Thread(new Runnable(){ public void run(){ mScrollView.fullScroll(View.FOCUS_UP); } })).start();