Android 带有RecyclerView click事件的MotionLayout仅在第二次单击后工作
我遵循这一点,并通过使用运动布局实现折叠工具栏。 当您在recyclerView上执行“快速滚动”,然后在recyclerView的任何项目上执行click事件时,此事件仅在您第二次单击后生效。或者您必须等待2-3秒,然后执行单击事件。否则,无法将click事件分派到recyclerView。(假设它等待在MotionLayout上完成动画)。我们如何解决这个问题 任何人都可以通过在文章源代码的适配器中添加以下代码来模拟这个问题。并做快速滚动Android 带有RecyclerView click事件的MotionLayout仅在第二次单击后工作,android,android-recyclerview,android-motionlayout,Android,Android Recyclerview,Android Motionlayout,我遵循这一点,并通过使用运动布局实现折叠工具栏。 当您在recyclerView上执行“快速滚动”,然后在recyclerView的任何项目上执行click事件时,此事件仅在您第二次单击后生效。或者您必须等待2-3秒,然后执行单击事件。否则,无法将click事件分派到recyclerView。(假设它等待在MotionLayout上完成动画)。我们如何解决这个问题 任何人都可以通过在文章源代码的适配器中添加以下代码来模拟这个问题。并做快速滚动 class ViewHolder(
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()
}
}
将ConstraintLayout更新为2.0.0-beta2版