Как реализовать ленивый адаптер recyclerView для загрузки, например realm recyclerView, используя kotlin

Мне нужно реализовать recyclerView, который показывает мои запросы в Parse, поэтому я сделал это:

private class Pagination extends RecyclerView.OnScrollListener{ @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); visibleItemCount = manager.getChildCount(); totalItemCount = manager.getItemCount(); firstVisibleItemPosition = manager.findFirstVisibleItemPosition(); if (!isLoading && !isLastPage) { if ((visibleItemCount + firstVisibleItemPosition) >= totalItemCount && firstVisibleItemPosition >= 0 && totalItemCount >= PAGINATION) { isLoading = true; new Handler().postDelayed(new Runnable() { @Override public void run() { loadData(); } }, 2000); } } } } 

и он работает хорошо. Но несколько месяцев назад я использовал адаптер realm recyclerView, который работает без разбивки на страницы (и он работает очень хорошо, потому что у меня есть 50 тысяч элементов для показа), и я хочу сделать такой адаптер. Я также использовал Kotlin, и я видел концепцию ленивой переменной:

 val lazyValue: String by lazy { println("computed!") "Hello" } 

но я не знаю, как использовать его для создания адаптера по этой причине: теперь, когда я делаю запрос для анализа, это что-то вроде этого:

  val dishes = ParseQuery.getQuery<ParseObject>("Books").setSkip(index).setLimit(pagination) dishes.findInBackground { objects, e -> e?.let { listener?.onPaginationError(e.message) } ?:run { createNewDish(objects,listener,false) } } 

и как это работает, когда я использую ленивый подход? Мне нужно загрузить все элементы, или мне нужно также разбивать на страницы?

Спасибо за помощь.

Я использовал адаптер realm recyclerView, который работает без разбивки на страницы (и он работает очень хорошо, потому что у меня есть 50 тысяч элементов для показа), и я хочу сделать такой адаптер.

На самом деле это волшебство королевства, а не адаптера. И вы не можете получить такой же вкус, потому что архитектура ленивой загрузки Realm будет супер быстрой, чем другие, такие как разбиение на страницы на стороне сервера. Извините, вы не можете имитировать это.

Мне нужно загрузить все элементы, или мне нужно также разбивать на страницы?

Если источник данных на стороне сервера не может обрабатывать запрос разбивки на страницы, сначала необходимо загрузить все элементы, а затем запросить его на стороне клиента и позволить адаптеру отображать элементы в recyclerview

как это работает, когда я использую ленивый подход?

То, что я понимаю, от этого, вы хотите совместить котлин ленив и разбивать на страницы?

Уже адаптеру требуется набор данных (возможно, элементы от 10 до 20 из источника данных), чтобы показать, когда это необходимо. Поэтому я не вижу никакого подходящего использования для ленивых kotlin.