Android Kotlin как загружать данные в recyclerView в конце списка
Загружаю данные для recyclerView через Retrofit2 Данные загружаются по 10 элементов, я их передаю в адаптер и они нормально отображаются И вот до ходя до конца е знаю как правильно отправить еще один запрос для получения данных Вот вызов из MainActivity:
val getPeople:GetPeople = GetPeople(this, recyclerPeopleList)
mService = Common.retrofitService
layoutManager = LinearLayoutManager(this)
recyclerPeopleList.setHasFixedSize(true)
recyclerPeopleList.layoutManager =layoutManager
getPeople.getAllPeople("1")
Так отправляю запрос
class GetPeople(
val context: Context,
val rcView: RecyclerView) {
val mService: RetrofitServices = Common.retrofitService
lateinit var adapter: PeopleAdapter
fun getAllPeople(page: String) {
mService.getAllPeople(page).enqueue(object : Callback<AllPeople> {
override fun onResponse(call: Call<AllPeople>, response: Response<AllPeople>) {
Log.d("TAG", response.body().toString())
adapter =
PeopleAdapter(context, response.body()?.results as MutableList<People>)
adapter.notifyDataSetChanged()
rcView.adapter = adapter
}
override fun onFailure(call: Call<AllPeople>, t: Throwable) {
Log.d("TAG", "Error in getAllPeople")
}
})
}
}
Это adapter:
class PeopleAdapter(private val context: Context, private val peopleList: MutableList<People>) :
RecyclerView.Adapter<PeopleAdapter.ViewHolder>() {
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val image = itemView.iv_card
val txt_name = itemView.tv_cadr
fun bind(listItem: People) {
itemView.setOnClickListener {
Toast.makeText(it.context, "Press on ${itemView.tv_cadr.text}", Toast.LENGTH_SHORT)
.show()
}
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val itemView =
LayoutInflater.from(parent.context).inflate(R.layout.item_layout, parent, false)
return ViewHolder(itemView)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val listItem = peopleList[position]
holder.bind(listItem)
holder.txt_name.text = peopleList[position].name
}
override fun getItemCount(): Int = peopleList.size
override fun onViewAttachedToWindow(holder: ViewHolder) {
super.onViewAttachedToWindow(holder)
val layoutPosition = holder.layoutPosition
}
}
Как понял надо это делать в onViewAttachedToWindow, но не понимаю как отсюда отправлять запрос заново P.S. при загрузке 10 элементов, так же получаем ссылку на следующую страницу с элементами