我正在使用[YouTubePlayerFragment][1]将嵌入式youtube视频功能添加到android应用中。视频预览(缩略图)使用 fragment 显示,该 fragment 是回收者 View 的单元格的一部分。点击该单元格可以激活视频播放(任何地方,不仅是 fragment ),并且效果很好,可以激活视频播放。不幸的是, fragment 本身会拦截所有触摸,并且不允许我在 fragment 点击时激活视频。

我试图将其添加到单元根android:clickable="true"并设置触摸监听器-事件不发生。

我还尝试在 fragment View (fragment.View.setOnTouchListener)上设置触摸监听器-效果相同,事件不会发生。

如何截获 fragment 拍子并执行我的自定义代码?

p.s.我尝试过YouTubeThumbnailView,但对我来说不起作用,因为播放视频的唯一机会是使用YouTubeStandalonePlayer和intent,这会激活新 Activity ,而我想保持当前 Activity 状态而无需上下文切换。

最佳答案

通过将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);
    }
}

09-10 07:24
查看更多