2017-04-06 1 views
0

J'essaie d'exécuter certaines opérations en fonction de l'existence ou non d'un fragment enfant. Voici mon code:Fragment d'enfant Android non nul après la suppression

private void addChatFragment() { 
    getChildFragmentManager() 
      .beginTransaction() 
      .add(R.id.chat_container, ChatFragment.newInstance(), 
        ChatFragment.FRAGMENT_TAG).commitAllowingStateLoss(); 
} 

private void removeChatFragment() { 
    ChatFragment f = (ChatFragment)getChildFragmentManager() 
      .findFragmentByTag(ChatFragment.FRAGMENT_TAG); 
    if(f != null) { 
     getChildFragmentManager().beginTransaction().remove(f).commit(); 
    } 

    Log.v("qwer", "is chat fragment null: " + getChildFragmentManager() 
      .findFragmentByTag(ChatFragment.FRAGMENT_TAG)); 

} 

Le problème est que mon fragment de conversation n'est pas nul après l'avoir supprimé. Est-ce que ce comportement est attendu? Et est-il possible de "supprimer" complètement l'endroit où le fragment est nul?

Répondre

1

FragmentTransaction#commit planifie une suppression du fragment, de manière asynchrone. FragmentTransaction#commitNow effectue la suppression de manière synchrone.

+0

Ah ok merci, je vais accepter dans quelques minutes. – jwBurnside