首页 > 解决方案 > NestedScrollView 内的 YouTubePlayerSupportFragment,底部行为自行滚动

问题描述

NestedScrollView 内的 YouTubePlayerSupportFragment 在调用 youtube onLoaded() 后,底部表单行为会自行滚动。

YouTubePlayerSupportFragment 向上滚动底部工作表和 onLayoutChild() 方法在 BottomSheetBehavior 中调用。

public boolean onLayoutChild(CoordinatorLayout parent, V child, int layoutDirection )

如果我只是从 onLayoutChild() 返回,即直接返回 true,则在 MyBottomSheetBehavior 中,视频不会播放,并且静态图像会像缩略图一样显示在 youtube_view 中,而没有任何视频控制视图,如播放/暂停、全屏视图等。

看看下面:

ezgif.com-video-to-gifde6cf08fedd42916.gif

在下面找到我的代码来初始化 youtube 播放器:

val youTubePlayerFragment = YouTubePlayerSupportFragment.newInstance()
    //Initialize YouTube Player
    youTubePlayerFragment.initialize(DEVLOPERKEY, object : YouTubePlayer.OnInitializedListener {
        override fun onInitializationSuccess(provider: YouTubePlayer.Provider, youTubePlayer: YouTubePlayer, b: Boolean) {
            //youTubePlayer.setFullscreenControlFlags(0);
            isInitialize = true
            mYouTubePlayer = youTubePlayer
            mYouTubePlayer.cueVideo("videoId")
        }

        override fun onInitializationFailure(provider: YouTubePlayer.Provider, youTubeInitializationResult: YouTubeInitializationResult) {
            isInitialize = false
            player = null
        }
    })
    val transaction = supportFragmentManager.beginTransaction()
    transaction.add(R.id.youtube_view, youTubePlayerFragment as Fragment).commit()

活动主:

<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/mainLayoutContainer">

    <include
    android:id="@+id/sub_view_layout"
    layout="@layout/sub_view"/>

    <com.google.android.material.appbar.AppBarLayout
    android:id="@+id/appbar_layout"
    android:layout_width="match_parent"
    android:layout_height="@dimen/actionbar_height"
    android:background="#00000000"
    android:paddingStart="0dp"
    android:paddingEnd="0dp"
    android:visibility="gone"
    android:theme="@style/AppTheme.AppBarOverlay"/>

    <androidx.appcompat.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="@dimen/actionbar_height"
    app:titleMarginBottom="0dp"
    android:background="#00000000"
    app:titleMarginTop="0dp"
    android:layout_marginStart="0dp">
        <ImageView
        android:id="@+id/ic_close"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_close"
        android:contentDescription="@null"/>
    </androidx.appcompat.widget.Toolbar>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

子视图:

<androidx.core.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/drawer_background"
        android:id="@+id/nested_scroll_view"
        android:orientation="vertical"
        android:fitsSystemWindows="true"
        app:layout_behavior="com.testjava.customui.MyBottomSheetBehavior">

    <androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/main_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        <!--YouTube Player Start -->
        <FrameLayout
                android:id="@+id/youtube_view_rl"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                android:layout_marginTop="24dp">
            <FrameLayout
                    android:id="@+id/youtube_view"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"/>
        </FrameLayout>
        <!--YouTube Player End -->
    </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView>

标签: androidandroid-coordinatorlayoutandroid-youtube-apibottom-sheetandroid-nestedscrollview

解决方案


推荐阅读