是否有人遇到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


所以我没有修改onDestroyOnSaveInstanceState方法,只保存适配器数据,所以当我旋转手机时,RecyclerView的滚动位置重置,有什么建议吗?

最佳答案

最近,我改进并为所有RecyclerView创建了FlexibleAdapter模式。旋转后可以保持状态。

使用非常简单,只需将2个类复制到您的公共文件中,再复制一些xml,即可启用对ListView的选择(单/多)。

请查看说明和完整的工作示例:https://github.com/davideas/FlexibleAdapter

关于android - RecyclerView保存状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27256726/

10-12 04:36