RecyclerView でデータを更新し、スクロール位置を維持する 質問する

RecyclerView でデータを更新し、スクロール位置を維持する 質問する

表示されるデータを更新しRecyclerViewnotifyDataSetChangedアダプターを呼び出し)、スクロール位置が正確に元の位置にリセットされるようにするにはどうすればよいですか?

古き良き場合、ListView必要なのは、を取得してgetChildAt(0)、それをチェックしgetTop()setSelectionFromTopその後まったく同じデータで呼び出すことだけです。

の場合には不可能のようですRecyclerView

LayoutManager確かに を提供する を使用する必要があると思いますがscrollToPositionWithOffset(int position, int offset)、位置とオフセットを取得する適切な方法は何ですか?

layoutManager.findFirstVisibleItemPosition()そしてlayoutManager.getChildAt(0).getTop()

それとも、もっとエレガントな方法で仕事をこなせるのでしょうか?

ベストアンサー1

私はこれを使っています。^_^

// Save state
private Parcelable recyclerViewState;
recyclerViewState = recyclerView.getLayoutManager().onSaveInstanceState();

// Restore state
recyclerView.getLayoutManager().onRestoreInstanceState(recyclerViewState);

もっと簡単ですので、お役に立てれば幸いです。

おすすめ記事