跨方向更改保留 xml 个片段

retain xml fragment across orientation changes

我正在使用 <fragment> 标签将片段添加到 Activity。该片段包含一个正在播放视频的 TextureView。如何在方向改变时继续播放视频?

仅供参考:我的片段中还有其他内容,例如服务和广播接收器,因此我正在寻找可靠的工程解决方案。例如,如果我使用

@Override
public void onCreate(Bundle savedInstanceState){
  setRetainInstance(true);
}

这可能会导致我的服务在方向更改时泄漏。

我正在阅读片段文档,也在此处查看答案。但是片段是如此复杂的特性,我需要一些额外的帮助。

在您的 activity 清单中

android:configChanges="orientation"
android:screenOrientation="portrait"

然后覆盖 onConfigurationChanged

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
}

你系好了吗:

android:configChanges="orientation|keyboardHidden"

或 Android 3.2(API 13 级)及更高版本:

android:configChanges="orientation|keyboardHidden|screenSize"