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", но я все равно получаю тот же результат! Что такое проплем?

0 ответов

Другие вопросы по тегам