我有一个奇怪的UI问题。简而言之,我在一个片段(称为“ A”)中放置了一个ViewPager。到此为止,在ViewPager中显示片段没有问题。
问题出现在我按下返回按钮时。返回按钮可以很好地弹出片段A并返回到上一个片段,但是在此过渡期间,ViewPager的内容完全被清空。
这非常明显,因为我有过渡动画。我不知道为什么会发生这种情况。很明显,这与嵌套片段有关,因为只有在具有嵌套片段的特定屏幕上才会发生这种情况。
代码片段:
初始片段显示项目列表。我们单击其中一个项目...
现在,一个新的片段出现了,并带有一个ViewPager。ViewPager被初始化...
问题出现在我按下返回按钮时。返回按钮可以很好地弹出片段A并返回到上一个片段,但是在此过渡期间,ViewPager的内容完全被清空。
这非常明显,因为我有过渡动画。我不知道为什么会发生这种情况。很明显,这与嵌套片段有关,因为只有在具有嵌套片段的特定屏幕上才会发生这种情况。
代码片段:
初始片段显示项目列表。我们单击其中一个项目...
@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。ViewPager被初始化...
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
mPager = (ViewPager) view.findViewById(R.id.viewpager);
mPagerAdapter = new SomeAdapter(getChildFragmentManager());
mPager.setAdapter(mPagerAdapter);
}
我没有在父Activity中重写onBackPressed
或进行其他有趣的操作。这很简单明了。