ресайклер посмотреть объект click listener в kotlin - PullRequest
0 голосов
/ 02 ноября 2019

Я начал кодировать в котлине заново. Моя проблема заключается в том, что я не могу назначить прослушиватель щелчков по элементам своему представителю. я потратил на это дни и ничего не стал. я попытался использовать этот подход: https://gist.github.com/arcadefire/1e3a95314fdbdd78fb211b099d6ec9da я добавляю код, но ничего не происходит при нажатии на элемент в панели реселлера. любая помощь будет получена, это код, который я использовал и не работал:

    interface OnItemClickListener {
    fun onItemClicked(position: Int, view: View)
}

fun RecyclerView.addOnItemClickListener(onClickListener: OnItemClickListener) {
    this.addOnChildAttachStateChangeListener(object: RecyclerView.OnChildAttachStateChangeListener {
        override fun onChildViewDetachedFromWindow(view: View?) {
            view?.setOnClickListener(null)
        }

        override fun onChildViewAttachedToWindow(view: View?) {
            view?.setOnClickListener({
                val holder = getChildViewHolder(view)
                onClickListener.onItemClicked(holder.adapterPosition, view)
            })
        }
    })
}

// Usage:
recyclerView.addOnItemClickListener(object: OnItemClickListener {
    override fun onItemClicked(position: Int, view: View) {
        // Your logic
    }
})
...