在項目中遇到了這個問題。頭痛了很久,總是無法重現,也不能很好的解決。總是在息屏后一段時間,就會報java.lang.IllegalArgumentException:No view found for id for....的問題,然后程序就崩潰了。相信很多朋友也有和我一樣遇到這個問題的。那么這個問題怎么去解決呢?
在仔細研究fragment的manager后,下面是我發現的東西
什么鬼?怎么會有兩個fragmentManager。這兩個東西有什么關系呢?
API上面說了一大堆,我這里簡單總結一下就是。
如果fragment在replace新的fragment的時候,容器用的是Activity布局中某個部分或者整體作為容器,那么,就使用getFragmentManager();
即:getFragmentManager到的是activity對所包含fragment的Manager。
如果fragment在replace新的fragment的時候,容器用的是此fragment的布局文件中某個整體或者部分view作為容器,那么,就是用getChildFragmentManager();
即:fragment嵌套fragment,就需要利用getChildFragmentManager()