如何在屏幕方向更改时附加片段?

Posted

技术标签:

【中文标题】如何在屏幕方向更改时附加片段?【英文标题】:How to attach fragment while screen orientation change? 【发布时间】:2015-11-06 11:10:52 【问题描述】:

我在片段中使用视频视图。 Video-view Fragment 工作正常,但每当屏幕方向从横向变为纵向或从纵向变为横向时。那个时候视频视图片段被破坏了。是否可以重新附加片段?

【问题讨论】:

【参考方案1】:

您必须在清单中使用此代码

<activity
 android:configChanges="keyboardHidden|orientation|screenSize"

</activity>

现在你的活动在改变方向后不会破坏

【讨论】:

我是在活动中完成的,但我正在使用片段作为视频播放器,所以每当屏幕方向发生变化时,添加片段被破坏。 @Vasant 你有没有在活动 setRetainInstance(true) 的 oncreate 中使用过这段代码; ,现在我把 setRetainInstance(true);加入 oncreate 但它不起作用。 @Vasant 抱歉,您必须设置 setRetainInstance(true);内部片段 oncreate 您需要确保您的活动没有重新创建片段。 if (statedInstanceState != null) 你不应该添加片段。另请记住,onCreateViewonDestroyView 将在旋转时在您保留的片段上调用。您应该真正了解一下生命周期并对其进行试验,因为它不是微不足道的。

以上是关于如何在屏幕方向更改时附加片段?的主要内容,如果未能解决你的问题,请参考以下文章

手动设置片段的屏幕方向

如果更改屏幕方向,如何修复按钮大小?

为啥 saveStateInstance 在屏幕方向上不起作用?

Android Fragment 和 Activity 在方向更改时的行为

如何防止自定义视图在屏幕方向更改时丢失状态

方向更改时,片段视图为空