我可以先向視圖中添加一個片段,然後「分離」它,然後「重新附加」到另一個視圖?Android片段 - 從一個視圖移動到另一個視圖?
在代碼中,我想:
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();
但它引發的錯誤:
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
感謝您的幫助!
由於你使用的是兩個不同的ID,用於片段容器(即R.id.right和R.id.left),用於將「片段一」。用一個單一的ID爲容器面對此異常。 – 2013-04-05 05:45:19
確實。但我想從左到右移動該片段。 – midnite 2013-04-05 05:53:00
在這種情況下,您需要首先提交上一個事務,然後再次開始一個新事務,以將相同的片段添加到不同的視圖 – 2013-04-05 05:57:56