所以我發現了一些類似的情況,但沒有任何關於這個特定情況。使用「替換」時,「無法更改碎片的容器ID」
我有一個FrameLayout,我給了id「容器」,幷包含幾個不同的片段。
在我的包含FrameLayout的活動的代碼中,我試圖用一個接收片段的函數在片段之間切換。
該代碼:
a。我已經定義了
private FragmentManager fm = getSupportFragmentManager();
b。我已經定義了
FragmentTransaction ft;
以後使用。c。我的作用是:
private void setActiveFragment(Fragment fragment){ //Determine which button should be marked as "active" determineButtonByFragment(fragment); //Repalce fragment ft = fm.beginTransaction(); ft.replace(R.id.container, fragment); ft.addToBackStack(String.valueOf(fragment.getId())); ft.commit(); }
任何想法,爲什麼我會得上「替換」這個錯誤?
編輯: 好吧,我只是意識到更多關於片段。由於所有5個片段都添加到FrameLayout中,「替換」將不起作用。當你試圖將一個片段從一個父視圖移動到另一個視圖(或者在這種情況下,到同一個視圖)時,你會得到「不可能的容器ID錯誤」,而不會先將它分開。 假設我有片段A,B,C,D,E。 如果我現在想替換爲片段B,我將無法做到這一點,直到我從它的原始父項中移除它(或者至少這是我認爲它的工作原理,否則請賜教)。現在剩下的唯一問題是如何將我的片段之間正確地切換...
最新錯誤? ..請張貼布局和日誌。 – Akhil