Android YouTube Player API Fragment无法手动处理触摸事件

枕上诗书闲处好,门前风景雨来佳。这篇文章主要讲述Android YouTube Player API Fragment无法手动处理触摸事件相关的知识,希望能为你提供帮助。
我正在使用[YouTubePlayerFragment][1]将嵌入式youtube视频功能添加到android应用程序中。使用片段显示视频预览(缩略图),片段是回收者视图的单元格的一部分。点击单元格应该激活视频播放(任何地方,不仅是片段),它工作得很好并激活视频播放。不幸的是,片段本身拦截了所有触摸,并且不允许我在片段点击上激活视频。
我试图添加到细胞根android:clickable="true"并设置一个触摸监听器 - 事件不会来。
我还试图在片段视图(fragment.View.setOnTouchListener)上设置触摸监听器 - 同样的效果,事件不会来。
如何拦截片段点击并执行我的自定义代码?
附:我已经尝试过YouTubeThumbnailView并且它对我不起作用,因为播放视频的唯一机会是使用YouTubeStandalonePlayer和intent,它激活新活动,同时我想在没有上下文切换的情况下保持当前活动。
答案我可以通过将YouTubePlayerFragment放在自定义LinearLayout中来实现它:

public class TouchEventLayout extends LinearLayout {public TouchEventLayout(Context context) { super(context); }public TouchEventLayout(Context context, AttributeSet attrs) { super(context, attrs, 0); }@Override public boolean onInterceptTouchEvent(MotionEvent ev) { return super.onInterceptTouchEvent(ev); } }

另一答案我知道这个问题很老了,但我遇到了同样的问题。
【Android YouTube Player API Fragment无法手动处理触摸事件】解决方案是将YouTubePlayerFragment放在自定义布局(从LinearLayout派生)中并覆盖其onInterceptTouchEvent方法:
@Override public boolean onInterceptTouchEvent(MotionEvent motionEvent) { final int action = motionEvent.getAction(); switch (action) { case MotionEvent.ACTION_DOWN: // on touch started break; case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: // on touch finished/cancelled break; case MotionEvent.ACTION_MOVE: // on touch moved break; }return false; }


    推荐阅读