У меня в приложении есть список созданный на основе recyclerView у которого есть свой адаптер. Этот адаптер заполняется данными которые он получает с сервера, возьмем к примеру список сообщений. На текущий момент я пытаюсь сделать добавление в список новых айтемов при достижении нижнего или верхнего уровня списка (на подобии списка сообщений Gmail). Я читал про библиотеку которая используется в Gmail, но я не понял как ее можно использовать в моей ситуации. Сейчас у меня получилось сделать добавление элементов списка при достижении нижней границы списка, и вроде все работает нормально. Но я не смогу сделать тоже самое используя те наработки которые я получил при работе с достижением нижней границы списка. Для начала я создал интерфейс:
public interface OnBottomReachedListener {
void onBottomReached(int position);
}
дальше в адаптере создаю функцию:
void setOnBottomReachedListener(OnBottomReachedListener onBottomReachedListener) {
this.onBottomReachedListener = onBottomReachedListener;
}
и дальше в onBindViewHolder вставляю проверку, которая не всегда правильно срабатывает но в целом все работает:
if (position == getItemCount() - 1) {
onBottomReachedListener.onBottomReached(position);
}
В активити после создания и заполнения адаптера я добавил слушатель:
((ListAdapter) adapter).setOnBottomReachedListener(new OnBottomReachedListener() {
@Override
public void onBottomReached(int position) {
getMessages(type, a_token, offset + 50);
}
});
я не могу понять как именно мне перевернуть проверку чтобы она срабатывала и когда я достигаю вершины списка. Надеюсь на вашу помощь и полезные советы. Заранее спасибо.