Как обнаружить превышение в Android ListView?
Я хотел бы показать / скрыть представление, когда пользователь прокручивает просмотр списка.
Как я могу обнаружить чрезмерную прокрутку? Есть ли слушатель? я пробовал OnScrollListener
но он только уведомляет о onScrollStateChanged
а также onScroll
1 ответ
Решение
Вы можете переопределить метод onOverScrolled, так как respond to the results of an over-scroll operation.
Просто чуть более полный ответ
@Override
protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY) {
super.onOverScrolled(scrollX, scrollY, clampedX, clampedY);
View view = (View) getChildAt(getChildCount()-1);
int diff = (view.getBottom()-(getHeight()+getScrollY()));
if(diff==0) {
//overscroll on bottom
} else {
//overscroll on top
}
}
scrollY = ненулевой и фиксированный Y = true -> Состояние OverScroll возникает при прокрутке снизу вверх
scrollY = ноль и фиксированный Y = true -> состояние OverScroll при прокрутке сверху вниз
так
@Override
protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY) {
super.onOverScrolled(scrollX, scrollY, clampedX, clampedY);
if(clampedY){
if(scrollY==0){
//over Scroll at top
}else {
//over Scroll at Bottom
}
}
}