Kann ich zuerst ein Fragment zu einer Ansicht hinzufügen, dann "trennen" und dann wieder an eine andere Ansicht anhängen?Android-Fragment - Wechsel von einer Ansicht zur anderen?
In Code, ich möchte an:
fragOne one = new fragOne();
getSupportFragmentManager().beginTransaction()
.add(R.id.left, one, "tag").commit();
getSupportFragmentManager().beginTransaction()
.detach(one).commit(); // or .remove(), or .addToBackStack(null).remove()
getSupportFragmentManager().executePendingTransactions();
getSupportFragmentManager().beginTransaction()
.add(R.id.right, one).commit();
Aber es wirft Fehler:
04-05 13:28:03.492: E/AndroidRuntime(7195): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.trybackstack/com.example.trybackstack.MainActivity}: java.lang.IllegalStateException: Can't change container ID of fragment fragOne{40523130 #0 id=0x7f080000 tag}: was 2131230720 now 2131230721
Dank für die Hilfe!
Sie stehen vor, diese Ausnahme, weil Sie zwei verschiedene IDs für Fragment Behälter verwenden (dh R.id.right und R.id.left) zum Hinzufügen des „Fragment einer“ .Verwendung einer einzigen ID für Container. –
In der Tat. Aber ich möchte dieses Fragment von links nach rechts bewegen. – midnite
In diesem Fall müssen Sie die vorherige Transaktion zuerst festschreiben und dann eine neue Transaktion erneut starten, um das gleiche Fragment zu einer anderen Ansicht hinzuzufügen. –