我想不要在屏幕旋转后从纵向重新加载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
。有什么问题?
答案 0 :(得分:0)
您需要在配置上更改配置上的适配器,然后才能在不重新加载的情况下设置数据。
如下所示,
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setContentView(R.layout.main);
if(mAdapter != null)
your_recycle_view.setAdapter(mAdapter);
}