W mojej aplikacji mam jedną aktywność i dodaję dwa fragmenty w czasie wykonywania. Muszę zamienić te dwa fragmenty jednocześnie. Fragment 1 składa się z przycisku i chcę, gdy kliknę ten fragment przycisku 1 przesunie się na prawą stronę ekranu, a drugi fragment po lewej stronie działania.Zamień jednocześnie dwa fragmenty.
W metodzie onClick przycisku Próbowałem coś jak ten
@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();
}
ale otrzymuję następujący błąd
java.lang.IllegalStateException: Can't change container ID of fragment PageA{40653da0 #0 id=0x7f060001}: was 2131099649 now 2131099650
chcę coś takiego po kliknięciu przycisku na stronie A Następnie pozycja strony A i strony B powinna się wzajemnie zamieniać.
tj. Co również stwierdziłem, że nie działa na plaster miodu. Nigdy nie próbowałem tego na ICS. może to być problem z Androidem –
Działa na ICS, dopóki usuwasz i dodajesz frag w dwóch osobnych transakcjach (spójrz na powyższy link, aby zobaczyć, jak to działa) – Matthew