Ale*_*akh 5 youtube video android android-fragments
我正在使用[YouTubePlayerFragment][1]嵌入式YouTube视频功能添加到Android应用程序.使用片段显示视频预览(缩略图),片段是回收者视图的单元格的一部分.点击单元格应该激活视频播放(任何地方,不仅是片段),它工作得很好并激活视频播放.不幸的是,片段本身拦截了所有触摸,并且不允许我在片段点击上激活视频.
我试图添加到单元格根android:clickable="true"并设置触摸侦听器 - 事件不会来.
我还尝试在片段视图(fragment.View.setOnTouchListener)上设置触摸侦听器- 同样的效果,事件不会来.
如何拦截片段点击并执行我的自定义代码?
ps我已经尝试了YouTubeThumbnailView它并不适合我,因为播放视频的唯一机会是使用YouTubeStandalonePlayer和意图,这会激活新的活动,而我想在没有上下文切换的情况下保持当前活动.
我可以通过将 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);
}
}
Run Code Online (Sandbox Code Playgroud)
我知道这个问题很老了,但我也遇到过同样的问题。
解决方案是放入YouTubePlayerFragment自定义布局(源自eg 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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
515 次 |
| 最近记录: |