0

How scroll from the first element to the second on click button? They are in different view holders and the button is in HeaderViewHolder

override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
    if (holder.itemViewType == HEADER_ITEM) {
        val viewHolder = holder as HeaderViewHolder
        holder.btn_next.setOnClickListener {
            println("Click on button")
        }
    } else {
        val viewHolder = holder as DefaultViewHolder
    }
}

UPDATE Im add mRecyclerView.smoothScrollToPosition(position + 1) and start the screen looks like this Start screen. After the first click on the button my screen looks like this First pressed. And only on the second pressed my screen Second pressed.

Maksimka
  • 23
  • 5

1 Answers1

0

first, make sure you can access the recyclerview from that code. You can look here for example of how to do that: Is there a better way of getting a reference to the parent RecyclerView from the adapter?

Then simply call scrollToPosition(position: Int) on it. So in your example it could be done like this:

override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
    if (holder.itemViewType == HEADER_ITEM) {
        val viewHolder = holder as HeaderViewHolder
        holder.btn_next.setOnClickListener {
            println("Click on button")
            mRecyclerView.scrollToPosition(position + 1)
        }
    } else {
        val viewHolder = holder as DefaultViewHolder
    }
}
Ivo
  • 18,659
  • 2
  • 23
  • 35