我的查看寻呼机有4个片段。
mAdapter = new Adapter_viewPager(getActivity().getSupportFragmentManager());
mPager = (ViewPager) view.findViewById(R.id.pager);
mPager.setAdapter(mAdapter);
mPager.setOffscreenPageLimit(4);
以下是适配器的代码:
public class Adapter_viewPager extends FragmentPagerAdapter
{
public Adapter_viewPager(android.support.v4.app.FragmentManager fm)
{
super(fm);
}
@Override
public int getCount() {
return 4;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new me_fragment();
case 1:
return new myFriends_fragment();
case 2:
return new shareFB_fragment();
case 3:
return new sharePic_FB_layout();
default:
return null;
}
}
}
现在从片段1开始,我在点击某个按钮时调用新片段。这是代码:
android.support.v4.app.FragmentManager fm = getFragmentManager();
facebookPictureShareFragment objHomeFrag = new facebookPictureShareFragment();
android.support.v4.app.FragmentTransaction ft = fm.beginTransaction();
ft.replace(android.R.id.content, objHomeFrag);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.addToBackStack(null);
ft.commit();
当我点击该按钮时,它会成功打开此片段,但当我按下后退按钮时,它会提供例外Recursive entry to executePending Transctions
。
请帮我解决这个问题。
答案 0 :(得分:0)
你无法将一个片段嵌入到另一个片段中。在这里,您将在另一个中执行一个片段事务。这是不允许的。如果您想这样做,请使用getChildFragmentManager()
mAdapter = new Adapter_viewPager(getChildFragmentManager());
mPager = (ViewPager) view.findViewById(R.id.pager);
mPager.setAdapter(mAdapter);
mPager.setOffscreenPageLimit(4);
看看这是否有用。
答案 1 :(得分:0)
尝试:
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();