我有一个奇怪的用户界面问题。简而言之,我在 Fragment 中有一个 ViewPager(我们称之为“A”)。至此,在 ViewPager 中显示 Fragments 是没有问题的。
当我按下后退按钮时出现问题。后退按钮弹出 Fragment A 就好了并返回到前一个 Fragment,但是在此转换过程中,ViewPager 的内容完全空白。
这很明显,因为我有过渡动画。我不知道为什么会这样。(似乎)很清楚它与嵌套片段有关,因为这只发生在这个特定的屏幕上,这是唯一一个具有嵌套片段的屏幕。
代码片段
Initial Fragment 显示项目列表。我们点击一个项目......
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
    FragmentManager fm = getFragmentManager();
    Fragment f = fm.findFragmentByTag("some_tag_name");
    if(f == null) {
        f = SomFragment.newInstance(...);
    }  
    getFragmentManager()
            .beginTransaction()
            .setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left,
                                 R.anim.slide_in_left, R.anim.slide_out_right)
            .replace(R.id.frame, f)
            .addToBackStack(null)
            .commit();
}
现在,一个带有 ViewPager 的新 Fragment 出现了。ViewPager 已初始化...
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {    
    mPager = (ViewPager) view.findViewById(R.id.viewpager);
    mPagerAdapter = new SomeAdapter(getChildFragmentManager());
    mPager.setAdapter(mPagerAdapter);    
}
我没有onBackPressed在父 Activity 或任何其他有趣的业务中压倒一切。这很简单。