android——fragment长时间home或者锁屏java.lang.IllegalArgumentException:No view found for id for....

在项目中遇到了这个问题。头痛了很久,总是无法重现,也不能很好的解决。总是在息屏后一段时间,就会报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()

原文地址:https://www.cnblogs.com/shoneworn/p/5076022.html