Sto provando a decidere e mostrare un frammento nel metodo di attività sul Risorsa, ma nel caso in cui venga scelto nuovamente un frammento aggiunto in precedenza, l'attività diventa vuota.Sostituire un frammento con se stesso non mostra nulla
codice di esempio (con un frammento):
@Override
protected void onResume(){
FragmentTransaction trans = getSupportFragmentManager().beginTransaction();
trans.replace(R.id.myLayout, fragA);
trans.commit();
getSupportFragmentManager().executePendingTransactions();
}
Con il codice di cui sopra, quando viene creato l'attività per la prima volta, mostra Fraga correttamente, ma nel caso in cui premere chiave domestica e quindi tornare alla mia attività (al fine di provocare di nuovo onResume), tutto diventa vuoto (sembra come fragA viene rimosso).
Sostituire un frammento aggiunto in precedenza si rimuove da solo? o come non perdere un frammento se viene sostituito da solo?
Inizializzo ** fragA ** in * onCreate *, il che significa che continuo a fare riferimento al mio frammento. Quindi, perché non consente di aggiungerlo dopo aver rimosso quel frammento? – waqaslam
A causa di esattamente quello che ho detto. Una volta rimossa un'istanza di un frammento, NON puoi aggiungerla più. È distrutto, finito, non più utilizzabile. –
Un'altra cosa da verificare è che R.id.myLayout è l'ID del contenitore in cui desideri inserire il tuo frammento. Se lo è, prova a cambiare la chiamata sostitutiva per sostituirla (R.id.myLayout, new FragmentAClass()) –