保存并恢复附加到回收站视图的布局管理器状态

时间:2018-03-02 20:29:30

标签: android

我知道问题的解决方案都在互联网上!甚至在stackoverflow上的几种方法,相信我,我已经阅读并应用了所有这些方法,但我无法保存和恢复我的回收站视图在设备旋转时的滚动位置。 这是我的相同代码(onCreate和onSaveInstanceState)。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    handleCollapsingToolbarTitle();
    loadViews();
    moviesAdapter = new MoviesAdapter(new ArrayList<Movies>(), this, this, this);
    mlayoutManager = new GridLayoutManager(this, 2);
    moviesRecyclerView.setNestedScrollingEnabled(false);
    moviesRecyclerView.setHasFixedSize(false);
    moviesRecyclerView.setLayoutManager(mlayoutManager);
    moviesRecyclerView.setAdapter(moviesAdapter);
    loaderManager = getLoaderManager();
    loaderManager.initLoader(LOADER_ID, null, this);
    if(savedInstanceState != null) {
        listState = savedInstanceState.getParcelable(LIST_STATE_KEY);
        if(listState != null)
            moviesRecyclerView.getLayoutManager().onRestoreInstanceState(listState);
    }
}

@Override
protected void onSaveInstanceState(Bundle state) {
    super.onSaveInstanceState(state);
    // Save list state
    listState = moviesRecyclerView.getLayoutManager().onSaveInstanceState();
    state.putParcelable(LIST_STATE_KEY, listState);
}

所以我尝试了所有组合,例如保存onPause并恢复onRestoreInstanceState和onCreate,onResume!但我没有成功。我不想通过androidConfigChange标签处理它。请帮我!。 PS:我正在使用GridLayoutManager,我甚至尝试过StatefulRecyclerView发布here

1 个答案:

答案 0 :(得分:0)

我认为您无需保存和恢复onSaveInstanceState内的位置即可达到目的。您可以添加属性 android:launchMode="singleTop" 在清单文件中的活动标记内。