Android: как прокрутить ScrollView в топе - PullRequest
20 голосов
/ 07 июня 2011

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

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

Я пытаюсь:

scrollViewEventDetails.pageScroll(ScrollView.FOCUS_UP);

и:

scrollViewEventDetails.scrollTo(0, 0); 

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

Ответы [ 5 ]

31 голосов
/ 07 июня 2011

Вы должны написать следующее:

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
20 голосов
/ 07 января 2015

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

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

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

scroll_view.smoothScrollTo(0,0);
14 голосов
/ 05 декабря 2011

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

2 голосов
/ 19 мая 2015

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

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

        if (hasFocus) {
            mScrollView.fullScroll(View.FOCUS_UP);
        }
    }
0 голосов
/ 23 июля 2015

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

(new Thread(new Runnable(){
   public void run(){
      mScrollView.fullScroll(View.FOCUS_UP);
   }
})).start();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...