相关疑难解决方法(0)

如何使用RecyclerView.State保存RecyclerView的滚动位置?

我对Android的RecyclerView.State有疑问.

我正在使用RecyclerView,我如何使用它并将其与RecyclerView.State绑定?

我的目的是保存RecyclerView的滚动位置.

android state android-recyclerview

97
推荐指数
11
解决办法
9万
查看次数

RecyclerView存储/恢复活动之间的状态

我正在将ListViews迁移到RecyclerViews.使用listviews,我使用此处描述的常用技术来存储和恢复活动之间的滚动位置.

如何使用RecyclerViews做同样的事情?在RecyclerView.onSaveInstanceState()似乎有protected访问权限,因此无法直接使用.

android listview android-recyclerview

64
推荐指数
4
解决办法
6万
查看次数

如何在Recyclerview/Layoutmanager中获得Scrollposition?

如何获得滚动RecyclerviewLayoutmanager

我可以通过添加一个来测量滚动位置OnScrollListener,但是当Orientation更改scrollDy为0时.

    mRecyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() {
            int scrollDy = 0;
            @Override
            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);
            }

            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                scrollDy += dy;
            }
        });
Run Code Online (Sandbox Code Playgroud)

java android android-recyclerview

27
推荐指数
4
解决办法
5万
查看次数

如何在屏幕旋转时保持 recyclerView 的滚动位置

我正在用 gridlayoutManager 填充 recyclerView。现在我想在屏幕旋转上保存滚动位置。

我尝试使用 onSaveInstanceState 和 onRestoreInstanceState() 这样做,如本文所示:

如何使用 RecyclerView.State 保存 RecyclerView 的滚动位置?

下面是我的代码:

@Override
protected void onSaveInstanceState(Bundle outState) {
    Log.e(TAG, "onSaveInstanceState");
    super.onSaveInstanceState(outState);
    outState.putParcelable(KEY_INSTANCE_STATE_RV_POSITION, 
    gridLayoutManager.onSaveInstanceState());
 }


@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {

    Log.e(TAG, "onRestoreInstanceState");
    super.onRestoreInstanceState(savedInstanceState);
    if (savedInstanceState!= null){
        Parcelable savedState = 
    savedInstanceState.getParcelable(KEY_INSTANCE_STATE_RV_POSITION);

        movieAdapter.addAll(movieItemList);
        if (savedState!= null){
            gridLayoutManager.onRestoreInstanceState(savedState);
        }
    }
}


//this is my movieAdapter.addAll() method 

public void addAll(List<MovieItem>items){

    movieItems = items;
}


//This is the method to get lists of movies from ViewModel Class

private void loadFavMovies() {
    FavViewModel …
Run Code Online (Sandbox Code Playgroud)

android gridlayoutmanager android-recyclerview

3
推荐指数
3
解决办法
3913
查看次数