在我的程序中,我有以下层次结构:
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
现在,似乎最深的片段保留了某种状态。至少它没有被破坏,因为视频的音频在整个方向改变之后和之后继续播放。但是,在方向更改后,片段不会恢复。我只是看到视频应该是的白色矩形。
正如你所看到的,这太荒谬了。我已经不得不在ViewPager类中使用三个hacky解决方案,但它仍然无法正常工作。如果有人知道我还能尝试什么,我将非常感激。
答案 0 :(得分:0)
最终,我没有找到问题的解决方案。我已经通过在父片段中保留嵌套片段的状态来解决问题,该片段确实正确地保留了状态。为此,我做了以下事情: