Прокрутка в Android для ScrollView

Раньше я спрашивал о OverScroll в Посмотреть список. OverScroll по умолчанию не работает на многих устройствах (например: Samsung Galaxy 2, HTC One X). Итак, я сделал OverScrollListView

Но теперь нужно сделать то же самое для ScrollView. Я сделал трюк для верхней прокрутки (используя положительное число в overScrollBy). Но когда я пытаюсь сделать то же самое для нижней части (используя отрицательное число в overScrollBy), прокрутите ScrollView, прокручивая до верхней позиции.

Кто-нибудь может сказать почему?

P.S. Я также попробовал это . Но даже в верхнем (или нижнем) положении индикатор полосы прокрутки отображается где-то посередине. Это сбивает пользователя с толку ...


person Suvitruf - Andrei Apanasik    schedule 07.05.2014    source источник


Ответы (1)


Хорошо, я думаю, что сделал это.

Но это действительно странно.

У меня был метод прокрутки, который я вызываю в ACTION_MOVE:

private void pullDown(int deltaY, int lastY) {
    overScrollBy(0, mSlowEffect ? (int)getOverScrollYWithSlow(deltaY) : deltaY, 0, lastY, 5, 5, 0, mMaxYOverscrollDistance, true);
}

Для ListView для прокрутки я просто установил deltaY что-то вроде pullDown(lastScroll, 0);

Он работает как для верхней, так и для нижней прокрутки.

Но для ScrollView это не работает для нижней прокрутки. Таким образом, мы должны отправить этому методу также текущую позицию scrollY, что-то вроде pullDown(lastScroll , lastY);

Я размещаю весь код на Github, если кому-то интересно.

person Suvitruf - Andrei Apanasik    schedule 08.05.2014