Предотвратить повторное использование RecyclerView

Я использую FlexboxLayoutManager в RecyclerView, и мне нужно предотвратить переработку RV. Я попытался установить itemViewCacheSize() для общего количества предметов, но это не помогло. Также я пытался установить maxedRecycledViews() на 0 безрезультатно. Как я могу предотвратить утилизацию RV?


person BorisTheCoder    schedule 14.03.2017    source источник
comment
Мне нужно предотвратить повторное использование RV — тогда не используйте RecyclerView. Почему вы хотите использовать RecyclerView без повторного использования просмотров? Возможно, есть какое-то другое решение проблемы, с которой вы столкнулись.   -  person CommonsWare    schedule 14.03.2017
comment
@CommonsWare Мне нужно RecyclerView для функции перетаскивания. В плоскости FlexboxLayout перетаскивание не работает, как в RecyclerView   -  person BorisTheCoder    schedule 14.03.2017
comment
Возможный дубликат Я хочу, чтобы мой RecyclerView не перерабатывал некоторые элементы   -  person stamanuel    schedule 14.03.2017
comment
RecyclerView не имеет функции перетаскивания AFAIK. Перетаскивание можно реализовать с помощью RecyclerView, но это не встроено. Если FlexboxLayout мешает вам реализовать перетаскивание в RecyclerView, сообщите об ошибке в проекте flexbox или не используйте FlexboxLayout. Правильное использование RecyclerView, включая повторное использование представлений, намного важнее, чем использование FlexboxLayout, ИМХО.   -  person CommonsWare    schedule 14.03.2017
comment
@CommonsWare в моем проекте мне нужно построить сетку TextureViews с видео в ней. Также мне нужно изменить конфигурацию сетки (включая изменение размера) без перезагрузки видео. Я могу добиться этого, установив LayoutParams для каждого дочернего элемента RecyclerView или FlexboxLayout без RecyclerView. Но когда я прокручиваю свои элементы в RecyclerView, видео начинают перезагружаться. Вот почему мне нужно либо увеличить пул переработки, либо вообще предотвратить переработку RecyclerView.   -  person BorisTheCoder    schedule 14.03.2017


Ответы (1)


Вызовите setIsRecyclable(false) в onBindViewHolder.

override fun onBindViewHolder(holder: ManşetViewHolder, position: Int) {
    holder.setIsRecyclable(false)
}
person Salih    schedule 03.05.2018