私はこのきちんとした機能を持っています:
_private void addMapFragment(){
if(!mapFragment.isAdded()){
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.add(R.id.mapContainer, mapFragment);
ft.commit();
}
}
_
アクティビティのaddMapFragment()
でonCreate()
を呼び出しています。次に、addMapMapFragment()
を呼び出すWebリクエストからのコールバックがあります。 isAdded()
メソッドは、「フラグメントはすでに追加されています:_MapFragment[...]
_」というクラッシュが発生するため、まったく役に立ちません。
どんな手掛かり?
FragmentTransactions
がコミットされます非同期。したがって、電話する必要があります
getFragmentManager().executePendingTransactions();
前あなたが呼び出す
Fragment.isAdded();
そうすれば、すべてが最新であるであることを確認できます。
代わりに、getSupportFragmentManager.findFragmentById()をチェックして、期待されるフラグメントが返されるかどうかを確認してください。今なら、追加してコミットできます。