همون طور که میدونید ریسایکلرویو عناصر رو زیر هم به صورت دینامیک قرار میده حالا فرض کنید شما زمانی به ته ریسایکل رسیدین میخواهین متوجه بشین و یک کاری رو انجام بدین مثلا اطلاعات جدید از سرور بگیرین و به ریسایکلرویو اضافه کنید: روشهای زیادی برای این کار وجود داره یکی از روشها مثلا یک Interface بسازید و به کلاس Adapter خودتون معرفی کنید و توی onBindViewHolder زمانی که به انتهای لیست رسیدین به Interface که به کلاس معرفی کردین خبر بدین و بقیه کارها که من نمیخوام اون روش رو بگم اون روش توی سایت زیر بسیار خوب پباده شده https://medium.com/@ayhamorfali/android-detect-when-the-recyclerview-reaches-the-bottom-43f810430e1e من میخوام با استفاده از متدهای خود اندروید این کار رو انجام بدم
امیدوارم این پست مفید باشه
اسنیپ
source+
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("Apple");
arrayList.add("Google");
arrayList.add("Facebook");
arrayList.add("Dell");
arrayList.add("Microsofr");
arrayList.add("Twitter");
arrayList.add("Youtube");
arrayList.add("Instagram");
arrayList.add("SnapChat");
MyAdapter myAdapter = new MyAdapter(arrayList);
myRecyclerView = (RecyclerView) findViewById(R.id.recycle);
myRecyclerView.setAdapter(myAdapterSecond);
final LinearLayoutManager layoutManager = new LinearLayoutManager(getApplicationContext());
myRecyclerView.setLayoutManager(layoutManager);
myRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
//visibleItemCount = آیتم های در حال رویت
int visibleItemCount = layoutManager.getChildCount();
//totalItemCount = کل آیتم های درون ریسایکل
int totalItemCount = layoutManager.getItemCount();
//pastVisibleItems = آیتمهای مشاهده شده گذشته
int pastVisibleItems = layoutManager.findFirstVisibleItemPosition();
//dy > 0 Scroll to Down
//dy < 0 Scroll to Up
//And Alseo dx Scroll to Left or Right For Horizontal RecyclerView
if (dy > 0) {
//Scroll to Down
if ((totalItemCount - visibleItemCount) <= pastVisibleItems) {
Log.i("LOG" , "End Of RecyclerView");
// شما در این قسمت میتونید هر کاری رو که خواستید انجام بدید مثلا از سرور اطلاعات جدید بگیرید و به ریسایکلتون اضافه کنید
}
} else if (dy < 0) {
//Scroll to Up
}
}
});