#android #android-recyclerview #android-motionlayout
#Android #android-recyclerview #android-motionlayout
Вопрос:
Я следую этому руководству и исходному коду, чтобы реализовать сворачивающуюся панель инструментов с помощью Motion Layout. Когда вы выполняете «быструю прокрутку» в RecyclerView, а затем выполняете событие щелчка по любому элементу RecyclerView, это событие срабатывает только после второго щелчка. Или вам нужно подождать 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()
}
}
Ответ №1:
Обновите ConstraintLayout до версии 2.0.0-beta2