Как у меня есть горизонтальный ListView с нумерацией страниц?

Есть ли такая библиотека, которая делает это, или группа библиотек, которые я мог бы объединить, чтобы реализовать эту функцию?

Я нашел CW EndlessAdapter и https://github.com/sephiroth74/HorizontalVariableListView, которые являются ответами на мои требования отдельно.

Кажется, есть проблемы совместимости между ними. Возможно ли объединить эти функции? Пожалуйста, предложите.

1 ответ

Решение

Я использовал горизонтальный ListView sephiroth74.

Для бесконечного ListView, я поставил ProgressBar в его нижнем колонтитуле. Это код для бесконечного ListView.

private enum ListViewStatus {
    LOADING_NEXT_PAGE, DOING_NOTHING
}

private void setEndlessListView(HListView hListView, final Data listData) {
    View footer = View.inflate(getContext(), R.layout.endless_list_footer, null);
    footer.setLayoutParams(new AbsHListView.LayoutParams(AbsHListView.LayoutParams.WRAP_CONTENT, mDimensionsFeaturedThumbnail.y));
    hListView.addFooterView(footer);

    hListView.setOnScrollListener(new OnScrollListener() {
        private int mFirstVisibleItem;
        @Override
        public void onScrollStateChanged(AbsHListView view, int scrollState) {
        }
        @Override
        public void onScroll(AbsHListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
            if(visibleItemCount != 0 && firstVisibleItem > mFirstVisibleItem) {
                boolean shouldLoadMore = (firstVisibleItem + visibleItemCount >= totalItemCount) && (mListView.getTag() == ListViewStatus.DOING_NOTHING);
                if(shouldLoadMore) {
                    loadMoreData(listData.getPageNumber()+1);
                }
            }
            mFirstVisibleItem = firstVisibleItem;
        }
    });
}

Не забудьте написать эту строку при инициализации ListView и загрузка данных:

mListView.setTag(ListViewStatus.DOING_NOTHING);
Другие вопросы по тегам