[英]on scrolled to add items in recyclerview always comes to top automatically when i scroll down
我正在實施無休止的回收站視圖。 從服務器aslo向下滾動並顯示數據可以得到很好的數據。 但是在滾動時,它會自動一次又一次地到達頂部。 我實施了許多解決方案,但沒有用。 這是一些代碼。
private int postNo = 15;
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (!lastTime) {
if (dy > 0) { // check for scroll down
visibleItemCount = layoutManager.getChildCount();
totalItemCount = layoutManager.getItemCount();
pastVisibleItems = ((GridLayoutManager) recyclerView.getLayoutManager()).findFirstVisibleItemPosition();
if ((visibleItemCount + pastVisibleItems) >= totalItemCount) {
postNo = postNo + 15;
getDataFromUrl(postNo);
}
}
}
}
我想要的是當我向下滾動應用程序增加項目數量時,它應該可以正常滾動。
public void getDataFromUrl(int postNoLocal) {
final int postLocal = postNoLocal;
call = apiInterface.getGames("androidapp/get_apps?per_page="+postLocal+"&type=12");
call.enqueue(new Callback<List<Example>>() {
@Override
public void onResponse(Call<List<Example>> call, Response<List<Example>> response) {
if (response.isSuccessful()) {
retrylayout.setVisibility(View.GONE);
jsonData = response.body();
adapter = new RecyclerAdapter_apps(jsonData, getContext());
recyclerView.setAdapter(adapter);
refreshLayout.setRefreshing(false);
spinner.setVisibility(myFragmentView.INVISIBLE);
}
}
@Override
public void onFailure(Call<List<Example>> call, Throwable t) {
runFun();
retrylayout.setVisibility(View.VISIBLE);
retry.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
spinner.setVisibility(View.VISIBLE);
retrylayout.setVisibility(View.GONE);
getDataFromUrl(postNo);
}
});
if (jsonData!=null){
jsonData.clear();
}
refreshLayout.setRefreshing(false);
recyclerView.removeAllViewsInLayout();
spinner.setVisibility(myFragmentView.INVISIBLE);
}
});
}
嘗試這種方式,希望它會起作用。
if(adapter ==null){
adapter = new RecyclerAdapter_apps(jsonData, getContext());
recyclerView.setAdapter(adapter);
}else{
homeAdapter.notifyDataSetChanged();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.