Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 带有RecyclerView click事件的MotionLayout仅在第二次单击后工作_Android_Android Recyclerview_Android Motionlayout - Fatal编程技术网

Android 带有RecyclerView click事件的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(

我遵循这一点,并通过使用运动布局实现折叠工具栏。 当您在recyclerView上执行“快速滚动”,然后在recyclerView的任何项目上执行click事件时,此事件仅在您第二次单击后生效。或者您必须等待2-3秒,然后执行单击事件。否则,无法将click事件分派到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()
    }

}

将ConstraintLayout更新为2.0.0-beta2版