android - 如何防止 youtube 片段视图在方向更改时重新加载
问题描述
当我的应用程序中的方向发生变化时,我想防止 youtube 片段视图重新加载。我在用YouTubeAndroidPlayerApi.jar
我已经添加了android:configChanges="orientation|screenSize",但它无法保护重新加载。
AndroidManifest.xml
<activity android:name=".MainActivity"
android:theme="@style/AppTheme"
android:configChanges="orientation|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
</intent-filter>
</activity>
activity_main.xml
<fragment
android:id="@+id/youtube_player_fragment"
android:name="com.google.android.youtube.player.YouTubePlayerFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String youTubeKey = getString(R.string.YouTubeKey);
YouTubePlayerFragment youTubePlayerFragment = (YouTubePlayerFragment) getFragmentManager().findFragmentById(R.id.youtube_player_fragment);
youTubePlayerFragment.initialize(youTubeKey, this);
}
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) {
youTubePlayer = player;
//Enables automatic control of orientation
youTubePlayer.setFullscreenControlFlags(YouTubePlayer.FULLSCREEN_FLAG_CONTROL_ORIENTATION);
//Show full screen in landscape mode always
youTubePlayer.addFullscreenControlFlag(YouTubePlayer.FULLSCREEN_FLAG_ALWAYS_FULLSCREEN_IN_LANDSCAPE);
//System controls will appear automatically
youTubePlayer.addFullscreenControlFlag(YouTubePlayer.FULLSCREEN_FLAG_CONTROL_SYSTEM_UI);
if (!wasRestored) {
youTubePlayer.setPlayerStyle(YouTubePlayer.PlayerStyle.MINIMAL);
youTubePlayer.loadVideo(getString(R.string.link));
}
else
{
youTubePlayer.play();
}
}
@Override
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult errorReason) {
youTubePlayer = null;
Toast.makeText(MainActivity.this, "Error", Toast.LENGTH_LONG).show();
}
解决方案
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
尝试将此添加到 Android 清单中的 Activity 标记中。
推荐阅读
- android - RecyclerView 中的 Fragment
- elasticsearch - 如何忽略具有空值或不存在的嵌套对象
- python - Python:将列表写入 CSV
- reactjs - React Native Async Promise 永远挂起
- magento - 我如何获得当前选择的送货地址 ID 磁电机 2.3.4
- azure - 如何在 Azure 中创建 management.azure.acom api 并进行角色分配
- python - 无法使 HttpNegotiateAuth 模块工作。ImportError:DLL 加载失败
- nginx - 带有 LetsEncrypt 的 Virtualmin 和 Apache 旁边的 Gitlab
- javascript - 对齐两个组件 - React js
- python - Python 使用 Groupby 和 Unpivot/pivot