是否有人遇到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
的滚动位置重置,有什么建议吗? 最佳答案
最近,我改进并为所有RecyclerView创建了FlexibleAdapter模式。旋转后可以保持状态。
使用非常简单,只需将2个类复制到您的公共文件中,再复制一些xml,即可启用对ListView的选择(单/多)。
请查看说明和完整的工作示例:https://github.com/davideas/FlexibleAdapter
关于android - RecyclerView保存状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27256726/