当打开+从其他片段+方向等返回时,ViewPager中的片段变为空/空白

时间:2014-10-20 11:16:18

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

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

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

导致此行为的原因是什么?如何解决?

我的应用看起来像这样:

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

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

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

ViewPager + FragmentStatePagerAdapter + orientation change

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

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

2 个答案:

答案 0 :(得分:0)

要创建CustomPagerAdapter,请扩展FragmentStatePagerAdapter。

您可以按照以下方式操作:http://developer.android.com/reference/android/support/v13/app/FragmentStatePagerAdapter.html

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

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

答案 1 :(得分:0)

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

android:configChanges="orientation|screenSize"