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();
.
之后滚动就可以正常工作了。
我正在使用带有 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();
.
之后滚动就可以正常工作了。