private View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (view == null)
view = inflater.inflate(R.layout.activity_community_tab, null);
ViewGroup parent = (ViewGroup) view.getParent();
if (parent != null) {
parent.removeView(view);
}
return view;
}
如上 每次进入fragment 在oncreateview中 判断 如果view 为null 则 inflater 布局 否则的 调用父类 removerview
同上 如果出现 Fragment + viewpager + Fragment 这种情况 一般容易出现
Recursive entry to executePendingTransactions
这样的话 是因为viewpager 嵌套的fragment 属于fragment 内部嵌套 已经属于child view
这样 使用 FragmentPagerAdapter viewpager setAdapter 的时候 实例化 Adapter时 应该这么来 使用 getChildFragmentManager();
例如:
viewPager_circle.setAdapter(new MyAdapter(getChildFragmentManager()));
当前代码同时可以解决fragment嵌套fragment嵌套 内部fragment多次执行的问题
(
判断if(view==null){ 这里做初始化 控件 之类的 可以解决,这样可以避免二次初始化}
if (view==null) {
view = inflater.inflate(R.layout.fragment_pet_circle,null);
header = LayoutInflater.from(mContext).inflate(R.layout.header_petcircle_fragment, null);
initView(view);
initReceiver();
setView();
}
)
感谢:http://blog.csdn.net/u012506234/article/details/50544326
感谢:http://www.cnblogs.com/over140/archive/2013/05/21/3090978.html