Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.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 View.setClickable(false)但触发了ACTION\u DOWN事件_Android - Fatal编程技术网

Android View.setClickable(false)但触发了ACTION\u DOWN事件

Android View.setClickable(false)但触发了ACTION\u DOWN事件,android,Android,我试图理解Android中的clickable是什么意思。我有一个简单的Button子类,它重写了onTouchEvent(),还实现了OnTouchListener.onTouch()(返回false以使事件冒泡到视图中),我注意到回调是通过MotionEvent.ACTION_向下调用的(首先是listener,然后是view方法),仅此而已。我认为clickable=false会完全禁用触摸事件,但显然不是。它真正的作用是什么?如何确保视图根本没有任何触摸事件(setEnabled(fal

我试图理解Android中的clickable是什么意思。我有一个简单的Button子类,它重写了onTouchEvent(),还实现了OnTouchListener.onTouch()(返回false以使事件冒泡到视图中),我注意到回调是通过MotionEvent.ACTION_向下调用的(首先是listener,然后是view方法),仅此而已。我认为clickable=false会完全禁用触摸事件,但显然不是。它真正的作用是什么?如何确保视图根本没有任何触摸事件(setEnabled(false)似乎根本不起作用,操作事件_DOWN、_MOVE和_UP不受阻碍地触发)。 为什么一些触摸事件被处理,而另一些则不适用于clickable=false?我发现它的行为非常令人惊讶,而且前后不一致——我希望MotionEvent.ACTION\u也会被触发,但可能不应该调用click listeners。有什么指导吗


使用setEnabled(false)更新仅调用View.onTouchEvent方法,侦听器将被忽略。更奇怪的是…

据我所知,setClickable用于在单击onClickListener时调用它,ACTION\u DOWN、ACTION\u MOVE、ACTION\u UP等操作用于在OnTouchListener中处理视图上的手指事件。

可能,但为什么只触发ACTION\u DOWN而不触发其他操作?为什么即使视图被禁用也会调用View.onTouchEvent方法?如何完全禁用用户交互-类似于iOS中的userInteractionEnabled=NO?