Я видел этот вопрос.Ответ на этот вопрос осуществим.НО ... Я должен создать прокрутку в обе стороны.Этот ответ помог мне достичь дна, но я не знаю, как отправить запрос, когда достигну вершины списка.Я пытался использовать что-то вроде этого:
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
if(dy > 0) //check for scroll down
{
}
}
});
и добавил это:
if(dy == 0)
{
getting some data
}
, но это работает неправильно.Зачем?Потому что после загрузки некоторых данных после достижения нижней части списка, мой список автоматически достигает верхней части списка и загрузка данных снова.Поэтому я должен добавить еще одно условие, но я не представляю, какое именно.Может быть, кто-то может мне помочь?
ОБНОВЛЕНИЕ
Я пытался добавить что-то вроде этого:
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
if (dy > 0) //check for scroll down
{
pastVisiblesItems = layoutManager.findFirstVisibleItemPosition();
if (loading) {
loading = false;
}
}
if(pastVisiblesItems==5){
loading=true;
}
if (loading&&recyclerView.canScrollVertically(-1)){
if (prev_url != null) {
Log.i("m","[]");
}
}
}
});
но это условие:
if (loading&&recyclerView.canScrollVertically(-1)){
if (prev_url != null) {
Log.i("m","[]");
}
}
будетотправьте ~ 30 запросов, и это будет неправильно для меня: (