我不想在屏幕从纵向旋转到横向后重新加载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/

10-10 18:32