我有一个奇怪的用户界面问题。简而言之,我在 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 或任何其他有趣的业务中压倒一切。这很简单。