Как обнаружить превышение в Android ListView? Я хочу показать/скрыть представление, когда пользователь просматривает список. Как я могу обнаружить сверхпрокрутку? Есть ли слушатель? Я пробовал OnScrollListener, но он только уведомляет о onScrollStateChanged и onScroll Ответ 1 Вы можете переопределить метод onOverScrolled, так как он respond to the results of an over-scroll operation. Ответ 2 Просто чуть более полный ответ @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 } } Ответ 3 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 } } }
Ответ 1 Вы можете переопределить метод onOverScrolled, так как он respond to the results of an over-scroll operation.
Ответ 2 Просто чуть более полный ответ @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 } }
Ответ 3 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 } } }