Android StaggeredGridLayoutManager偏移bug

时间:2015-10-14 13:39:55

标签: android layout-manager android-support-library android-recyclerview staggered-gridview

当您清除适配器并致电notifyDataSetChanged() - StaggedGridLayoutManager 时,mCachedStart/End个实例中的Span[]管理员仍然有resetToTop()。因此,当您向适配器添加新项目时 - 布局管理器会使用偏移绘制项目,这是巨大问题

EtsyStaggeredGridView 有方法layoutManager.onDetachedFromWindow(recyclerView, null),可以清除所有缓存的内容并从头开始绘制所有内容。

有一些解决方法:

  • 清除适配器后调用SELECT * FROM Table1 WHERE Table1.PRODUCT LIKE ( select regexp_substr(I_PRODUCT,'[^,]+', 1, level) from dual connect by regexp_substr(I_PRODUCT, '[^,]+', 1, level) is not null);
  • 设置布局管理器错误

add 20 items to adapter scroll a bit remove items, notifyChanges, add 20 items

1 个答案:

答案 0 :(得分:3)

有一些解决方法:

  • 清除适配器后调用layoutManager.onDetachedFromWindow(recyclerView, null)
  • 设置布局管理器错误