GridLayoutManager.scrollToPosition没有任何效果

时间:2017-04-02 06:47:32

标签: android gridlayoutmanager scroll-position

我有使用Fragment中的GridLayoutManger的RecyclerView,如下所示:

    @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 个答案:

没有答案