MotionLayout с RecyclerView событиями кликов работает только после 2-го клика - PullRequest
0 голосов
/ 08 марта 2019

Я следую этому учебнику и исходному коду , чтобы реализовать свертывающуюся панель инструментов с помощью Motion Layout.Когда вы выполняете «быструю прокрутку» на recyclerView, а затем делаете событие щелчка на любом элементе recyclerView, это событие работает только после 2-го щелчка.Или вы должны подождать 2-3 секунды, а затем сделать событие щелчка работает.В противном случае событие щелчка не может быть отправлено в recyclerView.(Предполагая, что он ожидает завершения анимации на MotionLayout).Как мы можем решить эту проблему?

Любой может смоделировать проблему, добавив приведенный ниже код в адаптер исходного кода статьи.И сделать быструю прокрутку.

class ViewHolder(
        view: View,
        private val textView: TextView = view.findViewById(android.R.id.text1)
) : RecyclerView.ViewHolder(view) {


    var text: CharSequence
        get() = textView.text
        set(value) {
            textView.text = value
        }

    init {
        view.setOnClickListener { showMessage(it) }
    }

    private fun showMessage(view: View) {
        Toast.makeText(view.context, "OnClickListener: item ${adapterPosition + 1}", Toast.LENGTH_SHORT).show()
    }

}
...