屏幕旋转后不重新加载recyclerview

时间:2016-06-27 09:19:16

标签: android

我想不要在屏幕旋转后从纵向重新加载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。有什么问题?

1 个答案:

答案 0 :(得分:0)

您需要在配置上更改配置上的适配器,然后才能在不重新加载的情况下设置数据。

如下所示,

    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);                
        setContentView(R.layout.main);

        if(mAdapter != null)
              your_recycle_view.setAdapter(mAdapter);

     }