0

我正在捕捉触摸事件ImageView,当我触摸它时,视图被隐藏并且所有视图都被覆盖FrameLayout。我需要图像视图上的触摸事件停止并在 new 上传输一个新的触摸事件layout,这涵盖了这一点ImageView

我尝试过这样的事情:

imageView.setOnTouchEventListener { v, event ->
    imageView.clearFocus()
    frameLayout.requestFocus()
    return false
}

我已经尝试过,dispatchEvent但在这种情况下它不起作用,因为imageView它只是整个屏幕的一小部分并且frameLayout覆盖了整个屏幕。

无论如何,我总是遇到同样的问题,我必须抬起手指并再次触摸屏幕,以便 imageView 失去旧的触摸事件,最后 framelayout 开始捕捉它。我能做些什么来解决这个问题?

4

1 回答 1

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
}
于 2018-02-06T23:56:41.170 回答