[英]Fragments in are not restored after orientation change
在我的程序中,我具有以下层次结构:
Activity
Fragment
ViewPager + FragmentStatePagerAdapter
Fragment containing video
使用setRetainInstance(true)初始化活动中立即嵌套的片段。 每当切换方向时,都会导致崩溃。 使用了错误报告中描述的解决方案: https : //code.google.com/p/android/issues/detail?id=42601#c10 。
尽管如此,只要我切换方向,该应用程序就会崩溃。 我找到了另一个错误报告+解决方案: https : //code.google.com/p/android/issues/detail?id=42601#c32 。
应用此解决方案后,我能够旋转设备而不会导致应用程序崩溃。 但是,深度嵌套的片段没有保留其状态。 由于此片段包含一个视频,即使方向发生变化也应继续播放,因此这是必须具备的。 我在这里找到了第三个错误报告,描述了这是Android支持库版本20及更高版本中的一个已知问题: https : //code.google.com/p/android/issues/detail?id=74222#c17
现在,似乎最深处的碎片仍保留着某种状态。 至少它不会被破坏,因为视频的音频会在整个方向更改后以及在方向更改后一直播放。 但是,片段在方向更改后不会恢复。 我只是在视频应该出现的地方看到一个白色矩形。
如您所见,这变得荒谬。 我已经不得不使用三个hacky解决方案来解决ViewPager类中的错误,但它仍然无法正常工作。 如果有人知道我还能尝试什么,我将非常有义务。
最终,我没有找到解决问题的方法。 我已经通过在父片段中保留嵌套片段的状态来解决了这个问题,该片段确实保留了状态。 为此,我做了以下工作:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.