Come rimuovere il backstack di frammento in android

ciao come cancellare frammento indietro stack sto usando sotto la logica non funziona …

for(int i = 0; i < mFragmentManager.getBackStackEntryCount(); ++i) { mFragmentManager.popBackStack(); } 

aiutami..

  • Orientamento Android 4.x con fonegap
  • Android ScrollView non rispetta il margine inferiore del bambino
  • L'Android NSD (Network Service Discovery) è compatibile con il servizio Bonjour in iOS?
  • Il pool di connessione non è stato in grado di concedere una connessione al thread
  • Android - XML ​​Pull parser da URL?
  • Le perdite di memory con il carattere personalizzato per il set di caratteri personalizzati
  • Come verificare se il telefono Android è radicato?
  • Telefono di sleeping di Android C2DM
  • E-mail di emissione (submit il collegamento ipertestuale nel corpo e-mail) android
  • L'aggiornamento di una notifica rimuove lo stato di primo piano di un servizio?
  • Dove chiudere con looper?
  • Emulare la scheda Mifare con Android 4.4
  • 5 Solutions collect form web for “Come rimuovere il backstack di frammento in android”

    Prova questo

     mFragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); 

    La risposta sopra è quasi esatta, ma hai bisogno di una guardia attorno all'elenco dei frammenti che può essere vuoto:

     private void clearBackStack() { FragmentManager manager = getSupportFragmentManager(); if (manager.getBackStackEntryCount() > 0) { FragmentManager.BackStackEntry first = manager.getBackStackEntryAt(0); manager.popBackStack(first.getId(), FragmentManager.POP_BACK_STACK_INCLUSIVE); } } 
     while (getSupportFragmentManager().getBackStackEntryCount() > 0){ getSupportFragmentManager().popBackStackImmediate(); } 

    un modo è quello di contrassegnare il backstack e quando si desidera eliminarlo

     mFragmentManager.popBackStack("myfancyname", FragmentManager.POP_BACK_STACK_INCLUSIVE); 

    where il "myfancyname" dovrebbe corrispondere alla string utilizzata con addToBackStack . Per esempio

     Fragment fancyFragment = new FancyFragment(); fragmentTransaction.replace(R.id.content_container, fancyFragment, "myfragmentag"); fragmentTransaction.addToBackStack("myfancyname"); 

    il backstack del backstack e il nome del tag del frammento possono essere gli stessi, ma non ci sono vincoli al riguardo

    Dalla documentazione

    Se impostato e il nome o l'ID di una voce dello stack posteriore è stata fornita, tutte le voci corrispondenti verranno consumate fino a quando non viene trovata una corrispondenza o si raggiunge il fondo dello stack. Altrimenti, tutte le voci fino a non includere quella voce verranno rimosse.

    se non si desidera utilizzare un nome per il tuo backstack è ansible passare utilizzando un primo parametro

      mFragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); 

    Questo è un po 'tardi, ma ho appena avuto questo problema stesso. Tu puoi fare:

     FragmentManager manager = getFragmentManager(); FragmentManager.BackStackEntry first = manager.getBackStackEntryAt(0); manager.popBackStack(first.getId(), FragmentManager.POP_BACK_STACK_INCLUSIVE); 

    Abbastanza esplicativo; hai appena ottenuto la prima voce, ottieni il suo ID e poi sfoglia tutto fino a includere la voce con quell'ID.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.