Ho un Activity
con tre frammenti permette loro di A, B e C chiamare. Fragment
A viene chiamato nell'attività onCreate()
.Prevenire lo stesso frammento Da impilabile più di una volta (addToBackStack)
FragmentA fragA = new FragmentA();
FragmentTransaction transaction = manager.beginTransaction();
transaction.add(R.id.activity2_layout, fragA, "A");
transaction.commit();
e viene sostituito con frammento B o C quando vengono premuti alcuni pulsanti, e il FragmentTransaction chiamate addToBackStack()
.
FragmentB fragB = new FragmentB(); //or C
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.activity2_layout, fragB, "B"); //or C
transaction.addToBackStack("B"); //or C
transaction.commit();
Ma consente di dire che io chiamo Fragment
B tre volte di fila, come posso evitare che accatastamento su di esso di sé? E allo stesso tempo, voglio che questo sia possibile: B chiamato>C chiamato>B chiamato - ma quando provo a tornare voglio B da aprire solo una volta (C < B) invece di (B < C < B). Quindi sostanzialmente rimuovendo il primo backStack con quello nuovo.
Questa è la risposta migliore in quanto risponde a entrambe le domande :) –