Nella mia applicazione ho una attività e sto aggiungendo due frammenti in fase di esecuzione. Ho bisogno di scambiare questi due frammenti simultaneamente. Il frammento 1 consiste in un pulsante e voglio quando clicco sul frammento 1 del pulsante sul lato destro dello schermo e su un altro frammento sul lato sinistro dell'attività.Scambia simultaneamente due frammenti
Nel metodo onClick del pulsante Ho provato qualcosa di simile
@Override
public void onClick(View v) {
FragmentTransaction ft = getFragmentManager().beginTransaction();
Fragment newFragment = getFragmentManager().findFragmentById(R.id.pageA);
ft.remove(newFragment);
Fragment newFragmentB = getFragmentManager().findFragmentById(R.id.pageB);
ft.remove(newFragmentB);
ft.add(R.id.pageB, newFragment);
ft.add(R.id.pageA, newFragmentB);
ft.addToBackStack(null);
ft.commit();
}
Ma sto ottenendo il seguente errore
java.lang.IllegalStateException: Can't change container ID of fragment PageA{40653da0 #0 id=0x7f060001}: was 2131099649 now 2131099650
voglio qualcosa di simile quando scatto il pulsante a pagina A quindi la posizione della pagina A e la pagina B dovrebbero scambiarsi tra loro.
cioè, anche quello che ho trovato non funziona su nido d'ape. Non l'ho mai provato su ICS. quindi potrebbe essere un problema Android –
Funziona su ICS finché rimuovi e aggiungi un frammento in due transazioni separate (dai un'occhiata al link sopra per vedere come è fatto) – Matthew