アダプターをクリアして呼び出すと、StaggedGridLayoutManagernotifyDataSetChanged()
マネージャーにはまだインスタンスがあります。そのため、新しいアイテムをアダプターに追加すると、レイアウト マネージャーはオフセットを使用してアイテムを描画します。これは大きな問題です。mCachedStart/End
Span[]
EtsyStaggeredGridViewresetToTop()
には、キャッシュされたものをすべてクリアし、すべてを最初から描画するメソッドがあります。
いくつかの回避策があります:
layoutManager.onDetachedFromWindow(recyclerView, null)
アダプタをクリアした後に呼び出す- 悪い新しいレイアウトマネージャーを設定する