我正在使用YouTubePlayerSupportFragment将YouTube视频嵌入到我的应用中。嵌入后,效果很好,可以播放视频,一切都很棒。
当我点击全屏按钮嵌入的YouTube视频 fragment 时,第一个奇怪的事情发生了:它实例化了现有封闭 Activity 的新副本...,我不知道为什么。
我有一个 Activity RootActivity,它在ViewPager中显示几个 fragment 。目前我正在处理的 fragment 称为EasyModePurchaseFragment。该EMPF在其布局xml中嵌入了YouTubePlayerSupportFragment:
<fragment
android:name="com.google.android.youtube.player.YouTubePlayerSupportFragment"
android:id="@+id/youtube_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
/>
当我点击YouTubePlayerSupportFragment上的“全屏”按钮时,将实例化一个全新的RootActivity。这是为什么?
这给我带来了一些问题,因为它没有以正确的方式完全创建,这意味着它会导致崩溃..而且不好。
编辑:
我还尝试拦截onFullScreen()事件,而不是调整 View 大小,而只是尝试使用提供的 Intent 启动独立的YouTube播放器:
Intent intent = YouTubeStandalonePlayer.createVideoIntent(getActivity(), myDeveloperKey, videoId);
getActivity().startActivity(intent);
奇怪的是,那也破坏并重新创建了RootActivity。如果启动 Intent 以打开Web URL,我的 Activity 不会被破坏并重新创建,为什么当我启动YouTubeStandalonePlayer Intent 时会被破坏并重新创建?
最佳答案
添加到包含YouTubePlayerSupportFragment这个属性的 Activity 中
android:configChanges="screenSize|orientation|keyboardHidden"