表示されるデータを更新しRecyclerView
(notifyDataSetChanged
アダプターを呼び出し)、スクロール位置が正確に元の位置にリセットされるようにするにはどうすればよいですか?
古き良き場合、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);
もっと簡単ですので、お役に立てれば幸いです。