Как буферизировать бесконечный прослушиватель прокрутки

Я внедрил бесконечный scrolllistener из codepath, но я OCD'd о том, что вы все равно можете сохранить список из 2000 элементов (даже если ваш GC будет подметать его в swap-файл вашего телефона?). Распределение памяти ( re) может замедлить прокрутку для сложных списков.

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

Тем не менее мой метод обрезки RecycleView.Adapter приводит к сбою моего рециркулятора: это приводит к двойным представлениям и странным поведениям прокрутки

проект :

Просмотр showNumbers ():

override fun showNumbers(numbers: List<Model>, append: Boolean) { recycler.post { mAdapter.add(numbers,append) val newCount = mAdapter.itemCount if(mAdapter.maxCount!=0 && newCount>mAdapter.maxCount) { mAdapter.trim(LIMIT,trimTop = append) } mScrollListener?.adapterStoppedLoading() } } 

Адаптер ():

 fun trim(limit : Int, trimTop: Boolean) { if(trimTop){ for(i in 0..(limit-1)) { items.removeAt(i) notifyItemRemoved(i) } }else{ val start : Int = items.lastIndex - limit+1 for(i in start..items.lastIndex) { items.removeAt(i) notifyItemRemoved(i) } } } 

Intereting Posts