【发布时间】:2014-12-02 18:48:14
【问题描述】:
有人遇到 RecyclerView 在更改方向后不保存滚动位置的问题吗?
mMyAdapter = new MyAdapter(context, MyAdapter.generateKey(this), savedInstanceState);
mMyAdapter.setHasStableIds(true);
mLayoutManager = new LinearLayoutManager(context, VERTICAL, false);
int padding = ResourceUtils.dp2px(context, 8);
mRecycleView.setClipToPadding(false);
mRecycleView.setPadding(0, ResourceUtils.getPixelSize(R.dimen.toolbar_height), 0, padding);
mRecycleView.setOverScrollMode(View.OVER_SCROLL_ALWAYS);
mRecycleView.setLayoutManager(mLayoutManager);
mRecycleView.setAdapter(MyAdapter);
mRecycleView.setHasFixedSize(false);
mRecycleView.setOnScrollListener(mScrollManager); // only to hide Toolbar on scroll
所以我没有修改onDestroy 或OnSaveInstanceState 方法,只保存适配器数据,所以当我旋转手机时,RecyclerView 的滚动位置重置,一些建议?
【问题讨论】:
-
在 RV 恢复时,您的适配器有内容吗?您的活动的 onCreate 代码来自哪里?
-
是的,它在我的 Fragment 中的 OnViewCreated 中
-
它应该保存滚动位置吗? AFAIK 这取决于你。
-
它应该保留滚动位置,所以这对我来说看起来很奇怪。如果你能分享一个示例项目,我很高兴看到它
标签: android android-recyclerview