在我的應用程序中,我有一個活動,我在運行時添加兩個片段。我需要同時交換這兩個片段。片段1包含一個按鈕,我希望當我點擊該按鈕時,片段1移動到屏幕的右側,其他片段移動到活動的左側。同時交換兩個片段
在按鈕的onclick方法我想是這樣的
@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();
}
但我收到以下錯誤
java.lang.IllegalStateException: Can't change container ID of fragment PageA{40653da0 #0 id=0x7f060001}: was 2131099649 now 2131099650
我想是這樣的,當我點擊網頁A上的按鈕那麼頁面A和頁面B的位置應該彼此交換。
即我還發現它不適用於蜂窩。我從來沒有在ICS上試過它。那麼它可能是一個Android問題 – 2012-04-02 04:01:38
它可以在ICS上運行,只要您在兩個單獨的事務中刪除並添加一個frag(查看上面的鏈接以瞭解它是如何完成的) – Matthew 2012-04-02 08:15:33