0

onCreateView が 2 回目に呼び出されると、MyFragment の別のインスタンスが追加されます。たとえば、この Fragment がバック スタックから戻ってくると、MyFragment の 2 つのインスタンスが表示されます。なんで?どうすれば防げますか?

@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;
}
4

1 に答える 1

2

FragmentTransactionはonCreateで実行する必要があります。

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

Atrix1987に感謝します

于 2013-03-18T11:28:42.127 に答える