Android RecyclerView Endless Scroll on load more, jumps to top

Android RecylerView EndlessScroller on load more, jumps to top

我正在使用带有 recylerview 的无尽滚动条,它在底部加载产品,但总是在加载更多调用我的页面从顶部而不是底部开始。

我是不是做错了什么?我正在使用 https://gist.github.com/ssinss/e06f12ef66c51252563e 作为无限滚动条,我在 activity 中的代码是:

recyclerView.setOnScrollListener(new EndlessRecyclerOnScrollListener(linearLayoutManager) {
            @Override
            public void onLoadMore(int current_page) {
                String load_more_url = url + "&page=" + String.valueOf(current_page);

                bottamProgressBar.setVisibility(View.VISIBLE);

                productVolleyLoader = new ProductVolleyLoader(getApplicationContext(), load_more_url,productList,
                                          myAdapter,bottamProgressBar, productRecyclerView);
                productVolleyLoader.volleyLoader();
            }
        });

在"onLoad"方法的最后,调用:

    mRecyclerView.smoothScrollToPosition(lastPosition);

如果每个项目都是 RecyclerView 中的子项,则使用 mRecyclerView.getChildCount() 或类似的方法从视图中获取最后一个位置。在开始时将其保存到一个变量,这样您将在加载之前拥有最后一个位置,并在加载结束时滚动到那里。

您正在加载更多的旧列表中添加新值。所以每次都是一个新列表。 您将必须以编程方式滚动到视图的最后位置。 当您要求加载更多时,保存位置,当列表加载时,以编程方式滚动到该位置。

非常抱歉提出这个愚蠢的问题。实际上我是在 volley loader 中设置适配器而不是在那里我必须在 onCreate 方法中设置适配器,而在 volley loader 中我只需要使用 notifyDataSetChanged();.

之后滚动就可以正常工作了。