我正在使用具有 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 的片段始终正确显示?