Android ListView: обнаружение, видима ли первая / последняя строка после завершения прокрутки - PullRequest
2 голосов
/ 10 марта 2011

Я должен реализовать своего рода разбиение на страницы для подкласса ListView.Когда пользователь прокручивает список вниз, прокрутка заканчивается, и он просматривает последнюю строку, я должен запросить следующую страницу данных, если таковые имеются.То же самое для прокрутки вверх / первой строки / предыдущей страницы.

public class ContactList extends ListView implements OnGestureListener {

    GestureDetector gestureDetector;

    public ContactList(Context context) {
        super(context);
        gestureDetector = new GestureDetector(this);
    }

//Other ctors here...       
}

Затем я прикрепил GestureDetector к ListView, перенаправив на него все касания.

public boolean onTouchEvent(MotionEvent ev) {
    return gestureDetector.onTouchEvent(ev);
}

Можно ли обнаружить вmy OnGestureListener.onScroll(), если первая / последняя строка видна с помощью getFirst/LastVisiblePosition()?

Может быть, этот метод называется до прокрутки происходит?

Спасибо за любую помощь.

1 Ответ

6 голосов
/ 10 марта 2011

Я думаю, вам нужно настроить OnScrollListener для вашего ListView и собрать позиции из onScroll обратного вызова:

    setOnScrollListener(new OnScrollListener() {
        @Override
        public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
            // You cat determine first and last visible items here
            // final int lastVisibleItem = firstVisibleItem + visibleItemCount - 1;
        }

        @Override
        public void onScrollStateChanged(AbsListView arg0, int arg1) {
            // TODO Auto-generated method stub
        }
    });
...