Android: определить, когда ScrollView завершил прокрутку и отскок назад? - PullRequest
6 голосов
/ 18 сентября 2010

У меня есть ScrollView, в котором есть два скрытых изображения, одно сверху и одно снизу. Между ними есть куча видимого контента.

Что мне нужно сделать, так это сделать эти изображения скрытыми по умолчанию, но когда вы прокручиваете все вверх или вниз, вы можете видеть их во время прокрутки. Но затем, как только вы прекратите прокрутку, он должен вернуться в видимую область, чтобы скрытые изображения не отображались.

В основном я пытаюсь имитировать функцию прокрутки отказов в iphone UIScrollView.

У меня есть все настройки ScrollView, и я делаю прокрутку в начале, чтобы скрыть верхнее скрытое изображение. Теперь все, что мне нужно сделать, это определить, когда прокрутка закончилась, выяснить положение Y и проверить, отображается ли скрытое изображение. Если это так, я бы просто программно прокрутил вид назад, чтобы скрытое изображение было скрыто.

Надеюсь, все это имело смысл.

Так или иначе, я знаю, как программно прокрутить ScrollView. Теперь мне нужен своего рода обратный вызов, чтобы сообщить мне, когда ScrollView прекратил прокрутку, а также способ получить текущую позицию Y в ScrollView. Есть ли такие методы, которые я мог бы использовать?

Я просмотрел документы ScrollView, но ничего не выскочило на меня. Я до сих пор не очень знаком со схемами именования Android, поэтому, может быть, я где-то упустил что-то очевидное.

В любом случае, любая помощь будет оценена здесь. Приветствия.

1 Ответ

4 голосов
/ 05 апреля 2011

Вы можете использовать OnTouchListener для определения, когда пользователь нажимает / отпускает список.

Вы также можете использовать метод onScrollStateChanged класса OnScrollListener (скорее всего, в сочетании с сенсорным слушателем), чтобы обнаружить изменения в SCROLL_STATE - когда список прекратил прокрутку, состояние изменится из состояния то есть не SCROLL_STATE_IDLE до SCROLL_STATE_IDLE.

В качестве альтернативы, если вы используете 2.3 или выше, вы можете использовать OverScroller, чтобы получить желаемый эффект (см. Изменение Android OverScroll , чтобы узнать, как изменить эффект избыточной прокрутки на iPhone, подобный таковому).

...