碎片中的碎片我想知道這是否是AndroidAPI中的一個bug:我有這樣的安排:┌----┬---------┐| | || 1 | 2 || |┌-------┐|| || ||| || 3 ||└----┴┴-------┴┘是一個菜單,它在右窗格中加載片段#2(搜索屏幕)。是一個搜索屏幕,其中包含片段#3,這是一個結(jié)果列表。結(jié)果列表在幾個地方使用(包括作為一個功能較高的片段本身)。這個功能在手機上非常好地工作(其中1&2和3是ActivityFragments)。但是,當(dāng)我使用此代碼時: FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
Fragment frag = new FragmentNumber2();
if(toLoad != null) frag.setArguments(toLoad);
transaction.replace(R.id.rightPane, frag);
transaction.commit();哪里R.id.leftPane和R.id.rightPane是<fragment>s在水平線性布局中。據(jù)我理解,上面的代碼刪除了駐留的片段,然后用一個新的片段替換它。才華橫溢.。顯然,這不是發(fā)生的情況,因為當(dāng)?shù)诙芜\行此代碼時,您會得到以下異常:07-27 15:22:55.940: ERROR/AndroidRuntime(8105): Caused by: java.lang.IllegalArgumentException: Binary XML file line #57:
Duplicate id 0x7f080024, tag null, or parent id 0x0 with another fragment for FragmentNumber3這是因為FragmentNumber3的容器已經(jīng)被復(fù)制,并且它不再具有唯一的ID。最初的片段還沒有被銷毀(?)在添加新的之前(在我看來,這意味著它還沒有取代).有人能告訴我這是否可能嗎這個答案暗示它不是),還是它是一個bug?
3 回答

吃雞游戲
TA貢獻1829條經(jīng)驗 獲得超7個贊
destroyview
@Override public void onDestroyView() { try{ FragmentTransaction transaction = getSupportFragmentManager() .beginTransaction(); transaction.remove(nestedFragment); transaction.commit(); }catch(Exception e){ } super.onDestroyView(); }
- 3 回答
- 0 關(guān)注
- 354 瀏覽
添加回答
舉報
0/150
提交
取消