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 элементов, так же получаем ссылку на следующую страницу с элементами


Ответы (0 шт):