android - NestedScrollView 内的 YouTubePlayerSupportFragment,底部行为自行滚动
问题描述
NestedScrollView 内的 YouTubePlayerSupportFragment 在调用 youtube onLoaded() 后,底部表单行为会自行滚动。
YouTubePlayerSupportFragment 向上滚动底部工作表和 onLayoutChild() 方法在 BottomSheetBehavior 中调用。
public boolean onLayoutChild(CoordinatorLayout parent, V child, int layoutDirection )
如果我只是从 onLayoutChild() 返回,即直接返回 true,则在 MyBottomSheetBehavior 中,视频不会播放,并且静态图像会像缩略图一样显示在 youtube_view 中,而没有任何视频控制视图,如播放/暂停、全屏视图等。
看看下面:
在下面找到我的代码来初始化 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>
解决方案
推荐阅读
- selenium - .NET 使用 Selenium 进行测试,无头 Chrome 错误
- javascript - 基于组件的客户端库 AEM
- algorithm - 识别事件数量
- ibm-watson - Watson Knowledge Studio 帐户订阅
- windows-10 - PythonMagick 无法打开配置文件
- c++ - 将 Catkin 与 CMake 接口库一起使用
- webpack - Babel 插件未应用于 node_module
- angular - 无法在谷歌表的创建方法中读取未定义的属性“客户端”
- java - 在 JDK 11 中使用 OSGi 和 Apache Felix iPOJO
- mysql - Codeigniter 中的 MySQL CASE 何时结束