【问题标题】:Fragments in ViewPager turns empty/blank when opening+returning from other fragment + orientation etcViewPager 中的片段在打开+从其他片段+方向等返回时变为空/空白
【发布时间】:2014-10-20 11:16:18
【问题描述】:

我正在尝试构建一个应用程序,您可以在其中使用 ViewPager 滚动对象。由于 SDK 9 的限制,ViewPager 包含 Fragments,支持库。片段由 bean-object 中的数据构成。

当我将活动视图(带有 transaction.replace)离开到另一个片段(并返回)时,我所在的页面和左侧的 1-2 和右侧变为空白 - xml 中的任何内容都不会显示,并且显示 ViewPager-xml-element 的背景。滚动 x 页时,内容会返回到页面(不是全部,您需要为此滚动更多)。当我进入和离开 PreferenceActivity 时,我没有收到此错误。

是什么导致了这种行为,我该如何解决?

我的应用如下所示:

1 具有 FrameLayout 的 FragmentActivity。调用时相互替换的 2 个片段。在其中一个片段(浏览器)内部是一些按钮和一个 ViewPager。 ViewPager 有一个(固定的1)FragmentStateChangeAdapter。如果将其更改为 FragmentChangeAdapter 则没有区别。

该活动有一个在 ViewPager 中使用的 bean 列表和一个在另一个片段 Search 中使用的 ListView。

我尝试了一些建议但没有结果:

ViewPager + FragmentStatePagerAdapter + orientation change

A bug in (and a fix for) the way FragmentStatePagerAdapter handles fragment restoration

我可以提供代码,但这感觉像是一个理论问题,可能是关于保存的状态等。

【问题讨论】:

  • 可以分享创建片段的代码吗?

标签: android android-fragments android-viewpager android-fragmentactivity fragmentstatepageradapter


【解决方案1】:

要创建 CustomPagerAdapter,请扩展 FragmentStatePagerAdapter。

你可以关注这个:http://developer.android.com/reference/android/support/v13/app/FragmentStatePagerAdapter.html

我遇到了同样的问题,它对我有用。

如果您仍然遇到此问题,请告诉我。

【讨论】:

  • 正如我所说我需要支持SDK9,v13不是意味着它至少支持SDK13吗?自从我使用活动进行了解决后,我不再遇到问题了。不够灵活,但适合 SDK
【解决方案2】:

查询:当您更改片段时,您调用 Web 服务。 您可以在清单中使用该代码尝试一下。

android:configChanges="orientation|screenSize"

【讨论】:

  • 我不确定你的意思是什么,或者它有什么帮助?它与 FragmentStatePagerAdaptor 错误保存的已保存状态无关。如果我猜对了,它可能会解决方向或屏幕大小变化的问题——但标准用法仍然是相同的。
猜你喜欢
  • 1970-01-01
  • 2015-05-30
  • 2013-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多