Как реализовать ленивый адаптер 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.

  • Диффузия и мультивыбор
  • Как использовать onItemLongClickListener в моей деятельности в Android?
  • Как отображать данные в RecyclerView с помощью API Retrofit2?
  • Изображение не отображается в Recyclerview с помощью Glide
  • RecyclerView - правильно внедрить удаление UNDO SnackBar (Kotlin)
  • Как буферизировать бесконечный прослушиватель прокрутки
  • RecyclerView анимация элемента, onAnimationFinished, но не onAnimationStarted. Зачем?
  • Из документации kotlin мне не ясно, как оператор
  • kotlin андроид фрагмент пустой recycler вид после назад
  • Как добавить изображение плюс в качестве кнопки в конце моего RecyclerView в Android?
  • java.lang.IllegalStateException: TextView не должен быть нулевым (Android / Kotlin)
  • Давайте будем гением компьютера.