【问题标题】:Android Fragments, ViewPager and device rotation, causes fragment orphansAndroid Fragments、ViewPager 和设备旋转导致片段孤儿
【发布时间】:2013-12-15 10:24:52
【问题描述】:

像许多其他人一样,我一直在努力理解与视图寻呼机相结合的机器人片段。

这里是设置:在纵向模式下,活动具有 xml 布局,其中包括绑定到 FragmentStatePagerAdaper 的 viewpager。这个适配器很好地限制了活动片段的数量。

当设备旋转时,xml 布局非常不同,只有一个片段,没有 viewpager。从用户的角度来看,它工作得很好,但从调试器和片段管理器调试日志中,我可以看到纵向布局中的最后一个活动片段仍然存在,并且也在横向模式下恢复。这些片段可能会执行一些密集的数据检索或其他计算,因此会消耗不重要的资源,我想摆脱它们。

然后当设备旋转回纵向模式时,我再次可以看到横向模式的片段仍然存在并且正在恢复。

横向模式的片段通过代码添加到片段管理器中,因此我可以检测到它在纵向模式下徘徊并将其从片段管理器中删除。但我不知道如何实现相反的效果,即在横向模式下删除视图寻呼机管理的孤立片段。我已经看到一些黑客尝试通过已知的标记语法删除片段,但是状态适配器不会添加带有标记的片段(截至来源:http://tinyurl.com/mdcuhk2),我不喜欢这个 hacky 想法。

我希望有人知道解决这个问题的方法。

【问题讨论】:

  • 你在哪里初始化你的ViewPager?可以发一些代码吗?
  • viewpager来自xml布局,在OnCreate(..)'中绑定到适配器

标签: android android-fragments android-viewpager xamarin.android


【解决方案1】:

我遇到了类似的问题,我在 <activity 下的 AndroidManifest.xml 中使用了以下代码

它也可能适用于您的代码:

android:configChanges="keyboardHidden|orientation|screenSize"

【讨论】:

  • android:configChanges="keyboardHidden|orientation|screenSize"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多