我的应用程序的上半部分有一个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/

10-12 01:14