GridLayoutManager.scrollToPosition не оказывает никакого влияния
У меня есть RecyclerView, который использует GridLayoutManger во фрагменте следующим образом:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//some code
mGridLayoutManager = new GridLayoutManager(getActivity(), 2, GridLayoutManager.VERTICAL, false);
mRecyclerView.setLayoutManager(mGridLayoutManager);
//some code
}
RecyclerView заполняется адаптером, который загружает данные из CursorLoader, моя проблема в том, что я пытаюсь восстановить сохраненную позицию прокрутки GridLayoutManger, чтобы использовать ее при вращении устройства следующим образом:
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mPosition=mGridLayoutManager.findFirstVisibleItemPosition();
outState.putInt(GRID_LAYOUT_SCROLL_KEY,mPosition);
}
@Override
public void onViewStateRestored(@Nullable Bundle savedInstanceState) {
super.onViewStateRestored(savedInstanceState);
if (savedInstanceState != null) {
mPosition=savedInstanceState.getInt(GRID_LAYOUT_SCROLL_KEY);
mGridLayoutManager.scrollToPosition(mPosition);
}
}
но ничего не меняется, когда вращение происходит так, как будто метод scrollToPosition() не работает вообще. Я пытался поставить "mGridLayoutManager.scrollToPosition(mPosition);" внутри "onLoadFinished", но я все равно получаю тот же результат! Что такое проплем?