ListView / ListAdapter подкачки - PullRequest
       18

ListView / ListAdapter подкачки

2 голосов
/ 12 апреля 2010

Я пытаюсь реализовать подкачку в пользовательском адаптере ListAdapter. Прямо сейчас я просто делаю запрос на следующую страницу, когда последний элемент в ListView становится видимым, проверяя getView(), если position равен >=, размер ListAdapter.getCount().

Работает нормально, но мне интересно, есть ли лучший способ (или другой способ), который будет выполнять запрос только после того, как последний элемент в списке фактически станет видимым для пользователя. Кто-нибудь знает способ?

Ответы [ 3 ]

4 голосов
/ 12 апреля 2010

Я делаю это почти так же:

public static final int SCROLLING_OFFSET = 5;
// ...
private final ArrayList<T> items = new ArrayList<T>();
// ...
if (SCROLLING_OFFSET == items.size() - position) {
    if (hasNextPage()) {
        addNextPage();
    }
}

private boolean hasNextPage() {
    // basically calculates whether the last 2 pages contained the same # of items
}

private void addNextPage() {
    // show spinner
    // fetch next page in a background thread
    // add to items
    notifyDataSetChanged();
}
2 голосов
/ 06 мая 2011

Я думаю, что есть лучший способ сделать это. Реализация интерфейса OnScrollListener. Взгляните на это: EndView Scrolling ListView

0 голосов
/ 12 апреля 2010

Попробуйте полностью удалить чек. По моему опыту, getView () вызывается только тогда, когда запись собирается появиться на экране.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...