Когда вы очищаете свой адаптер и вызываете notifyDataSetChanged()
, менеджер StaggedGridLayoutManager по-прежнему имеет mCachedStart/End
в Span[]
экземплярах. Поэтому, когда вы добавляете новые элементы в адаптер, менеджер компоновки отрисовывает элементы со смещением, и это огромная проблема.
EtsyStaggeredGridView имеет метод resetToTop()
, который очищает все кешированные данные и рисует все с нуля.
Есть несколько обходных путей:
- Позвоните
layoutManager.onDetachedFromWindow(recyclerView, null)
после очистки адаптера - Установите новый менеджер компоновки, который является плохим