То, что вы спрашиваете, - это, по сути, бесконечный скроллер-просмотрщик с представлением загрузчика внизу, которое принимает щелчок для загрузки дополнительных данных.
Вы должны использовать несколько viewType
в RecyclerView.Adapter
Я рекомендую вам поискать больше, прежде чем задавать новый вопрос, так как есть множество учебных пособий по этому и другим подобным вопросам по stackOverflow. Вот ссылка на пример в стеке о том, как реализовать несколько viewTypes.
Я поделюсь некоторыми моментами об одном из способов достижения того, что вы ищете.
Сначала в вашем адаптере необходимо объявить две константы
private final int VIEW_ITEM = 0;
private final int VIEW_LOADER = 1;
и boolean showLoadMore
создать метод publi c
public void showLoader(boolean status) {
this.showLoadMore = status;
}
это можно использовать, чтобы показать / скрыть загрузчик от вашей активности
Вам нужно переопределить метод getItemCount()
, чтобы вернуть правильное количество строк, так как он постоянно меняет базу на вашем загрузчике
@Override
public int getItemCount() {
if (yourList.isEmpty()) {
return 0;
} else {
if (showLoadMore)
return yourList.size() + 1;
else
return yourList.size();
}
}
Переопределить getItemViewType(int position)
, так как ваш загрузчик должен быть внизу, он должен
return (position == yourList.size() && showLoadMore) ? VIEW_LOAD : VIEW_ITEM;
Далее, как показано в ссылке, которой я поделился выше, вам нужно накачать свой макет в методе onCreateViewHolder
и затем свяжите свой макет в методе onBindViewHolder
на основе ваших viewTypes. Вы можете просто использовать условие if else, так как в этом случае есть только 2 типа просмотра.
Теперь в вашей деятельности после того, как вы установили Adapter в обзоре реселлера и извлекли набор данных n adapter.showLoader (true), чтобы показать представление загрузчика и notifyDataSetChanged()
. Вы можете настроить отображение загрузчика так, чтобы он отображал индикатор выполнения или, если хотите, по щелчку выбрать следующий набор данных, если новый счетчик меньше требуемого количества count <= n
, тогда задайте для адаптера значения showLoader(false)
и adapter.notifyDataSetChanged()
, что скроет ваш загрузчик. представление после добавления данных.
Надеюсь, что этот ответ вам каким-то образом поможет,
Между тем вот учебник из Интернета, реализующий бесконечную прокрутку с помощью повторного просмотра в другом виде