我正在追踪ImageView
上的触摸事件,当我触摸它时,视图会被隐藏,所有视图都被FrameLayout
覆盖。我需要停止图像视图上的触摸事件并在新layout
上传输新的触摸事件,该事件覆盖此ImageView
。
我尝试过这样的事情:
imageView.setOnTouchEventListener { v, event ->
imageView.clearFocus()
frameLayout.requestFocus()
return false
}
我尝试了dispatchEvent
但在这种情况下不起作用,因为imageView
只是整个屏幕的一小部分,frameLayout
涵盖了所有屏幕。< / p>
无论如何我总是遇到同样的问题,我必须抬起手指再次触摸屏幕,这样imageView就会丢失旧的触摸事件,最后帧布局开始捕捉它。我该怎么做才能解决这个问题?
答案 0 :(得分:0)
您可以在ImageView和FrameLayout上实现触摸事件侦听器,然后使用变量来了解ImageView是否被触摸。像这样的东西:
boolean imageViewIsTouched = false;
imageView.setOnTouchEventListener { v, event ->
if(!imageViewIsTouched){
//do something
imageViewIsTouched = true;
}
return false
}
frameLayout.setOnTouchEventListener { v, event ->
if(imageViewIsTouched){
//do something
}
return false
}