Переопределить onAttachedToRecyclerView, чтобы получить ссылку RecyclerView в классе адаптера
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
mRecyclerView = recyclerView;
}
Переопределить onViewRecycled, чтобы получить lastVisiblePosition, которое можно использовать, когда вы снова перезагрузите представление вашего переработчика
@Override
public void onViewRecycled(SiteHolder viewHolder) {
lastVisiblePosition = ((GridLayoutManager) mRecyclerView.getLayoutManager()).findLastCompletelyVisibleItemPosition();
}
Где бы вы ни выполняли перезагрузку данных (как установщик Arraylist или как-то еще), сначала позвоните
notifyDataSetChanged();
, а затем
((GridLayoutManager) mRecyclerView.getLayoutManager()).scrollToPosition(lastVisiblePosition);
Это обеспечит первую перезагрузку данныхзатем прокрутка