有关嵌套片段

时间:2018-09-18 13:30:08

标签: android android-fragments youtube-api android-youtube-api

我正在尝试使用Fragment中的recyclerview设置YouTube视频列表。 我有一个活动,在该活动中有一个片段,用于管理底部导航选择,另一个片段是用于TabLayout,用于管理选项卡选择,最后一个是适配器,在其中具有我的recyclerview,它正在设置视频列表,一切按计划进行,但是当我播放视频,YoutubePlayerAPI暂停了视频。 我尝试通过在Google上搜索来解决此问题,但无法修复。

下面是我的video_recycler_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:fresco="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:elevation="4dp"
    android:background="@android:color/white"
    android:clipToPadding="false"
    android:layout_marginLeft="4dp"
    android:layout_marginRight="4dp"
    android:padding="4dp"
    android:orientation="vertical">
    <RelativeLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <com.facebook.drawee.view.SimpleDraweeView
            android:id="@+id/ivFeedCenter"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            fresco:placeholderImage="@color/colorPrimary"/>
        <View
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#4f000000"/>
        <ImageView
            android:id="@+id/play_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:src="@drawable/ic_video_play"/>

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/video_container"
            android:tag="@string/video_component_tag">

        </FrameLayout>
    </RelativeLayout>
    <TextView
        android:id="@+id/title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textStyle="bold"
        android:textSize="20sp"/>
    <TextView
        android:id="@+id/description"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
</LinearLayout>

有人可以告诉我我在做什么错吗?

我在下面提到的logcat中收到消息

W/YouTubeAndroidPlayerAPI: YouTube video playback stopped due to unauthorized overlay on top of player. The YouTubePlayerView is not contained inside its ancestor android.support.v7.widget.RecyclerView{f61352e VFED..... ........ 0,0-1080,1560 #7f0a01df app:id/rvFeed}. The distances between the ancestor's edges and that of the YouTubePlayerView is: left: 24, top: 1402, right: 24, bottom: -422 (these should all be positive).

2 个答案:

答案 0 :(得分:1)

为避免停顿,您需要隐藏所有覆盖框架布局的视图,因为我看到您的框架是match_parent。当您单击播放视频时,隐藏所有内容并尝试。还要看看您是否没有FloatingActionButton或其他视图覆盖。

答案 1 :(得分:0)

我认为当您单击播放按钮时,framLayout的高度为0 dp,并且youtubePlayer.init(“ somevideID”)也会尝试播放视频,但是由于高度为0 dp,它只会插入视频并暂停视频

正在发生的事情:

**Insert video 
Play the Video 
Height is Zero at insertion time 
So it pauses the video instantly**

做一件事增加高度(例如200dp)到frameLayout并使它不可见。现在之前,调用youtubePlayer.init()使frameLayout 可见。然后然后调用youtubePlayer.init()。这样可以解决您的问题。