Нажатие на элемент горизонтального RecycledView, который внутри вертикального RecycledView
Как обработать нажатие на элемент горизонтального RecycledView, который внутри вертикального RecycledView
внутренний адаптер
class MovieAdapter(private val list: List<Movie>) :
RecyclerView.Adapter<MovieHolder>() {
interface OnStateClickListener {
fun onStateClick(movie: Movie, position: Int)
}
private val onClickListener: OnStateClickListener? = null
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MovieHolder {
val inflater = LayoutInflater.from(parent.context)
return MovieHolder(inflater, parent)
}
override fun onBindViewHolder(holder: MovieHolder, position: Int) {
val movie: Movie = list[position]
holder.bind(movie)
holder.itemView.setOnClickListener { v: View? ->
onClickListener!!.onStateClick(
movie,
position
)
}
}
override fun getItemCount(): Int = list.size
Внешний адаптер
class OutAdapter (private val itemList: List<FilmGenre>) :
RecyclerView.Adapter<OutHolder>() {
private val viewPool = RecycledViewPool()
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): OutHolder {
val inflater = LayoutInflater.from(parent.context)
return OutHolder(inflater, parent,)
}
override fun onBindViewHolder(ganreViewHolder: OutHolder, position: Int) {
val itemHolder = itemList[position]
ganreViewHolder.bindGanre(itemHolder)
ganreViewHolder.movieItem.setRecycledViewPool(viewPool)
}
override fun getItemCount(): Int {
return itemList.size
}