我的应用程序的上半部分有一个VideoView
,下面有一个MediaController
。下半部分是带有一些按钮的图像。当MediaController
可见时,下面的按钮不可单击。就像MediaController
可见时,它会拦截所有其他触摸事件,即使它们不在MediaController
的范围之内。
有什么想法吗?
最佳答案
您可以 checkout my answer on overriding dispatchTouchEvent()
来将点击通过MediaController
传递到基础Button
,但是我猜您使用MediaController的方式出了问题。您可以发布您的布局吗?
UPD:
其实,罢工。我刚刚看过 MediaController
代码,事实证明它为自己创建了一个新的Window
。这就是为什么您的点击没有被发送的原因-它们被发送到另一个窗口。另外,据我从constructor code所知,如果您通过xml为MediaController充气(即在布局文件中使用它,然后仅通过代码中的id找到它),则不会创建额外的Window
。这很奇怪,但是我确定他们有这样做的理由。
因此,解决方案是尝试在布局文件中使用MediaController或与CommonsWare's solution一起使用。请让我知道如何操作,以防您尝试使用xml东西。
关于Android MediaController拦截所有其他触摸事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7909603/