我正在使用YouTube API
,我希望在全屏模式下在Swipe
上应用YouTubePlayerView
左右手势。
当Swipe
处于全屏模式时,Android
版本4.0 +中的YouTubePlayerView
手势不起作用。
请帮我解决这个问题。提前谢谢。
答案 0 :(得分:1)
您可以尝试扩展YoutubePlayerView和覆盖onTouchEvent并返回false
答案 1 :(得分:1)
迟到总比没有好。
问题相当于css中的z-index。全屏视频是在活动开始后添加的,并且位于视图堆栈的最顶部,因此一切都在它下面。
在这个例子中,我们将在所有内容之上放置一个全屏不可见的对话框,以便我们可以将任何我们想要的手势附加到其视图(布局)并在我们的活动中执行回调。
PlayerStateChangeListener
并使用onVideoStarted
回调方法执行以下代码。以下代码将添加一个透明对话框,该对话框将位于视图层次结构的顶部(甚至高于视频):
// Add listeners to YouTubePlayer instance
player.setPlayerStateChangeListener(new PlayerStateChangeListener() {
//... other methods
@Override
public void onVideoStarted() {
// Setting style with no title (defined later in the answer)
BasicPlayerActivity.this.mDialog = new Dialog(BasicPlayerActivity.this, R.style.AppTheme_NoActionBar_Fullscreen); BasicPlayerActivity.this.mDialog.setContentView(R.layout.overlay_layout);
View v = BasicPlayerActivity.this.mDialog.findViewById(R.id.container);
//Adding touch listener (OR ANY LISTENER YOU WANT)
v.setOnTouchListener(new OnSwipeTouchListener(BasicPlayerActivity.this){
public void onSwipeRight() {
// TODO: Previous Video or whatever
}
public void onSwipeLeft() {
// TODO: Next video or whatever
}
});
//Setting transparent dialog background (invisible)
BasicPlayerActivity.this.mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
BasicPlayerActivity.this.mDialog.show();
}
});
在styles.xml
中 <style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.NoActionBar.Fullscreen">
<item name="android:windowFullscreen">true</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:backgroundDimAmount">0</item>
</style>
您还可以设置取消回叫或其他任何操作。这取决于你。
我希望这会对你或任何有这个问题的人有所帮助。