У меня есть вид рециркулятора, и на нем реализован addOnScrollListener. Ниже мой API
http://uat.nirc.com.np:8080/GWP/inventory/getInventoryRequestOnMobile?memberId=2&offset=0
В моем API есть смещение с каждым значением, содержащим не более 10 элементов. Ниже приведен мой основной класс, в котором реализован addOnScrollListener.
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener()
{
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState)
{
super.onScrollStateChanged(recyclerView, newState);
if(newState == AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL)
{
isScrolling = true;
}
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
currentItems = layoutManager.getChildCount();
totalItems = layoutManager.getItemCount();
scrollOutItems = layoutManager.findFirstVisibleItemPosition();
if(isScrolling && (currentItems + scrollOutItems == totalItems ))
{
isScrolling = false;
getData();
}
}
});
Следующая функция getData.
public void getData()
{
if(token <= reqCount){
progressBar.setVisibility(View.VISIBLE);
token = token + 9;
datacall(token);
}
}
А вот функция вызова данных.
public void datacall(int token){
apiInterface = ApiClient.getApiClient().create(TalikaApiInterface.class);
Call<JinsiAnirodhTalikaModel> call = apiInterface.getData(id,token);
call.enqueue(new Callback<JinsiAnirodhTalikaModel>() {
@Override
public void onResponse(Call<JinsiAnirodhTalikaModel> call, Response<JinsiAnirodhTalikaModel> response) {
requestCount = Integer.parseInt(response.body().requestCount);
for(Data a :response.body().data){
posts.add(a);
}
adapter = new JinsiAnurodhTalikaAdapter(posts,getApplicationContext());
progressBar.setVisibility(View.GONE);
adapter.notifyDataSetChanged();
recyclerView.setAdapter(adapter);
}
@Override
public void onFailure(Call<JinsiAnirodhTalikaModel> call, Throwable t) {
Log.e("error",t.getMessage());
}
});
}
В каждом жетоне 10 предметов. После прокрутки к нижней части загружаются новые данные и токен увеличивается на +9. Но при извлечении новых данных положение scrollListener сбрасывается на верх, то есть, когда новые данные извлекаются внизу, recyclerView сбрасывается на верх.
Может кто-нибудь помочь мне? Я хочу, чтобы позиция scrollListener оставалась именно в этой последней позиции.