我可以先向视图中添加一个片段,然后“分离”它,然后“重新附加”到另一个视图?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