déplacer Android fragment à un autre conteneur ne Peut pas changer l'ID de conteneur de fragment

Voici ce que je voudrais que mon application est à faire sur une tablette.
Fragment (0) a un menu qui va afficher les fragments (1)...(n) comme ceci:

-----------------
|   |   |   |   |
|   |   |   |   |
|(0)| X | X | X |
|   |   |   |   |
|   |   |   |   |
-----------------
 becomes
-----------------
|   |   |   |   |
|   |   |   |   |
|(0)|(1)| X | X |
|   |   |   |   |
|   |   |   |   |
-----------------
 and then
-----------------
|   |   |   |   |
|   |   |   |   |
|(0)|(2)|(1)| X |
|   |   |   |   |
|   |   |   |   |
-----------------
 etc... 

Fragment0 ne se déplace jamais, les autres sont décalés vers la droite. Fragments d'aller au large de la pointe vers la droite sera détruit.

J'ai donc configurer mon XML de mise en page horizontale un LinearLayout et contenant 4 FrameLayout avec le bon Id (fragment0... fragment3)

Je peux instancier et d'affichage fragment0 et puis fragment1, mais je ne suis pas en mesure de le déplacer vers la droite après, je reçois:

ERROR/AndroidRuntime(343): FATAL EXCEPTION: main
java.lang.IllegalStateException: Can't change container ID of fragment ...

La seule relation que les questions que j'ai trouvé sont cette une et que l'on, essayé toutes les différentes solutions proposées avec pas de chance.

Essayé FragmentTransaction.remove() suivie par .add(), essayé .replace(), essayé dans des ordres différents et à s'engager à mi-chemin à travers (même en essayant de commettre deux fois comme quelqu'un l'a suggéré), essayé d'appeler addToBackStack() ... toujours pas de chance.

Question est de savoir si il est possible de déplacer les fragments comme ça avec un FragmentTransaction. Si oui, ce que je fais mal (et en bonus, est-il possible d'animer?). Si non, quelle serait la bonne façon de mettre en œuvre cette?

Noter que je ne veux pas ré-instancier les fragments à chaque fois (chaque faire quelques requêtes sur le web qui peut prendre un certain temps). Il est possible d'extraire toutes les données de l'activité pour recréer un, mais je préfère ne pas le faire si c'est possible...

OriginalL'auteur Matthieu | 2012-11-28