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