Autore Topic: ricaricare un fragment dal backstack  (Letto 344 volte)

Offline aeroxr1

  • Utente junior
  • **
  • Post: 76
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy nexus
  • Sistema operativo:
    window 8.1
ricaricare un fragment dal backstack
« il: 26 Maggio 2015, 22:42:31 CEST »
0
Ciao,
ho un problemuccio. Ho un menu che mi carica 4 diversi fragment facendo il replace.
Il problema è che il replace mi carica interamente un nuovo fragment. Ma quello che voglio io è diverso.

Io vorrei che se clicco sul bottone che apre il fragment A e il fragment A è già presente nel backstack vorrei ricariricare questo fragment dal backstack senza ricrearne uno totalmente nuovo.

Come potrei fare ? Ho visto qualcosa con il popBackStackImmediate, ma non ne capisco l'utilizzo.

Ecco forse con questo metodo (trovato su stackoverflow) ho risolto il mio problema :
Codice: [Seleziona]
private void replaceFragment (Fragment fragment){
                  String backStateName = fragment.getClass().getName();

                  FragmentManager manager = getFragmentManager();
                  boolean fragmentPopped = manager.popBackStackImmediate (backStateName, 0);

                  if (!fragmentPopped){ //fragment not in back stack, create it.
                    FragmentTransaction ft = manager.beginTransaction();
                    ft.replace(R.id.frame_container, fragment);
                    ft.addToBackStack(backStateName);
                    ft.commit();
                  }
                }


Un altra idea sarebbe quella di usare l'hide & show al posto del replace, ma anche qui sono ignorante e non capisco come poter sostituire totalmente il replace con queste due funzioni.

Su 4 fragment uno è quello che richiamo più spesso, mi riiuscisse nasconderlo e rimostrarlo all'occorrenza non sarebbe male, e mi eviterei anche il problema di ricaricare lo stato.

Mi potreste dare un piccolo aiuto ? Grazie mille !
« Ultima modifica: 27 Maggio 2015, 01:05:41 CEST da aeroxr1 »