Android 为什么要多次添加OnCreateView子片段?

Android 为什么要多次添加OnCreateView子片段?,android,android-fragments,Android,Android Fragments,当第二次调用onCreateView时,它会添加MyFragment的另一个实例。例如,当这个片段从后台堆栈返回时,它显示了MyFragment的两个实例。为什么?我应该如何预防它 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.an

当第二次调用onCreateView时,它会添加MyFragment的另一个实例。例如,当这个片段从后台堆栈返回时,它显示了MyFragment的两个实例。为什么?我应该如何预防它

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
 View view = inflater.inflate(R.layout.announcement, null);
 FragmentTransaction fragmentTransaction = getChildFragmentManager()
            .beginTransaction();
 fragmentTransaction.add(R.id.fragmentContainer, new MyFragment());
 fragmentTransaction.commit();
 return view;
}

碎片事务应在onCreate中完成:

@Override
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 FragmentTransaction fragmentTransaction = getChildFragmentManager()
        .beginTransaction();
 fragmentTransaction.add(R.id.fragmentContainer, new MyFragment());
 fragmentTransaction.commit();
}

多亏了Atrix1987

为什么要在onCreateView中执行片段事务。好的,我应该在哪里执行?在onCreate?你不需要。只需膨胀视图并返回它,{如果您需要准备添加侦听器等,您可以在此处执行}