Как у меня есть горизонтальный 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);