我不想在屏幕从纵向旋转到横向后重新加载RecyclerView
。
我正在使用onSaveInstanceState
从适配器保存列表,并在onActivityCreated
中还原它。
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
if(mAdapter != null) {
outState.putParcelableArrayList("key", mAdapter.getOriginalList());
}
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if(savedInstanceState != null) {
mList = savedInstanceState.getParcelableArrayList("key");
mAdapter.notifyDataSetChanged();
}
}
但问题是,每次屏幕旋转后都会重建
RecyclerView
。怎么了? 最佳答案
您需要在编程更改的配置上设置适配器,然后只有在不重新加载的情况下才能设置数据。
像下面这样,
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setContentView(R.layout.main);
if(mAdapter != null)
your_recycle_view.setAdapter(mAdapter);
}
关于android - 屏幕旋转后不重新加载recyclerview,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38050142/