Android kotlin onTouchListener希望我覆盖performClick()

时间:2017-09-12 08:21:50

标签: android android-studio kotlin

我正试图摆脱警告,其中Android Studio希望我的onTouchListener覆盖我执行的performClick,但警告仍然存在。

draggableBar!!.setOnTouchListener(View.OnTouchListener { view, motionEvent ->
    when (motionEvent.getAction()) {
        MotionEvent.ACTION_DOWN -> {

        }
        MotionEvent.ACTION_UP -> {
            view.performClick()
        }
    }

    return@OnTouchListener true
})

这可能是Android Studio的错误还是我做错了什么?

1 个答案:

答案 0 :(得分:1)

好的,我有同样的问题,但我通过覆盖onTouch监听器来修复它。

默认的onTouch希望我们覆盖performClick(),但即使通过view.performClick()调用该方法也不行。

因此,请像这样覆盖你的onTouch:

override fun onTouch(view: View, motionEvent: MotionEvent): Boolean {
    when (view) {
        draggableBar -> {
            when (motionEvent.getAction()) {
                MotionEvent.ACTION_DOWN -> {

                }
                MotionEvent.ACTION_UP -> {
                    view.performClick()
                }
            }
        }
        otherButtonHere -> {
            //your welcome
        }
    }

    return true
}

通过这种方式,您可以在所有可点击的视图中使用单个onTouch()。

别忘了向班级实施:

View.OnTouchListener

设置监听器:

draggableBar!!.setOnTouchListener(this)

希望它有所帮助! :)