Подтвердить что ты не робот

Android: как прокрутить ScrollView вверху

У меня есть две кнопки, которые переключаются на следующий список событий и на предыдущий.

Когда я перехожу к следующему\предыдущему событию, свитки остаются где-то внизу. Но мне нужно "перемотать" его.

Я пытаюсь:

scrollViewEventDetails.pageScroll(ScrollView.FOCUS_UP);

и:

scrollViewEventDetails.scrollTo(0, 0); 

но это не сработает. Пожалуйста, помогите!

4b9b3361

Ответ 1

Затем вы напишите следующее:

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

Ответ 2

Это не сработало для меня:

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

Это сработало для меня:

scroll_view.smoothScrollTo(0,0);

Ответ 3

scrollview.pageScroll(View.FOCUS_UP); более последователен и работает для меня.:)

Ответ 4

Время этих вызовов имеет решающее значение. getViewTreeObserver(). addOnGlobalLayoutListener не работал у меня, но с помощью обратного вызова onWindowFocusChanged в моей активности выполнялось:

@Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);

        if (hasFocus) {
            mScrollView.fullScroll(View.FOCUS_UP);
        }
    }

Ответ 5

Я знаю, что это старый пост, но есть причина, по которой код будет работать в некоторых местах, а не в других. Он будет прерван основным потоком, если вызван в неправильном месте, особенно если ScrollView должен прокручиваться на большое расстояние. Поэтому поместите свой вызов в свою нить. Фиксированный.

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