Обнаружить конец броска в HorizontalScrollView? - PullRequest
1 голос
/ 04 ноября 2011

Как я могу определить конец события броска в HorizontalScrollView?

Используя GestureDetector, я могу определить, когда запущен onFling, но не могу понять, как определить, когда он завершился. Есть ли какая-то функция обратного вызова или подобный трюк, который я упускаю?

Ответы [ 3 ]

3 голосов
/ 11 марта 2012

Этот ответ запоздал, но, вероятно, полезен с аналогичными требованиями

Мой подход заключается в переопределении scrollTo для View. С помощью я перенесу отложенное сообщение с помощью обработчика. Эффект заключается в том, что до тех пор, пока происходит прокрутка, сообщение не будет доставлено. Но когда вызов прокрутки не происходит, сообщение будет доставлено и может использоваться для оповещения об окончании «бросания»

Вы поняли идею?

0 голосов
/ 03 мая 2017

Я надеюсь, что это сработает, чтобы увидеть горизонтальный конец прокрутки в scrollView

hsv.setOnScrollChangeListener(new View.OnScrollChangeListener() {
        @Override
        public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
            View view = (View) hsv.getChildAt(hsv.getChildCount() - 1);
            int diff = (view.getRight() - (hsv.getWidth() + hsv.getScrollX()));

            if (diff <= 0) {
                next.setVisibility(View.INVISIBLE);
            } else {
                next.setVisibility(View.VISIBLE);
            }
        }
    });
0 голосов
/ 05 ноября 2011

Возможно, обнаружив более прокрутки


Как насчет этого:

Используйте комбинацию onFling() и onScrollChanged().Когда происходит событие броска И следует событие прокрутки, вы получите точное количество изменений.

...