1

我正在使用具有 API 级别 10 的 Android 兼容性包。我有一个 FragmentActivity,在其 onCreate 方法中,我使用以下方法动态添加了一个新创建的 Fragment 实例 (myPagerFragment):

getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, myPagerFragment).commit();

myPagerFragment 包含一个使用 FragmentPagerAdapter 的 ViewPager。该实现是根据 Android 文档进行的,没有什么特别的。当单击 ViewPager 子片段之一中的按钮时,myPagerFragment 将被删除并替换为新的片段实例 (myOtherFragment),使用:

FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out);
ft.replace(R.id.fragment_container, myOtherFragment).commit();

myOtherFragment 显示一个包含按钮的简单视图。单击此按钮时,myOtherFragment 将被删除并再次替换为 myPagerFragment 的新实例,使用:

FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out);
ft.replace(R.id.fragment_container, myPagerFragment).commit();

此时,myPagerFragment 不再像开始时那样显示,而是显示一个空白屏幕。日志中没有崩溃,也没有任何用处。

我已经在其他视图中尝试过这种方法,例如,用包含简单视图定义的 Fragment 替换 myPagerFragment,这可以正常工作并且符合预期。只有包含 ViewPager 的片段在连续加载时显示不正确。

如何使包含 ViewPager 的片段始终正确显示?

4

1 回答 1

2

您不能将片段嵌套在片段中。因此,您不能将 aFragmentPagerAdapter放入 aViewPagerFragment。请重新设计您的 UI 以解决此冲突,例如摆脱最外层的Fragment.

于 2012-03-07T12:55:29.720 回答