问题环境:
详情:https://www.cnblogs.com/earl-yongchang/p/5747860.html
详情如下:
在activity中应该使用:getSupportFragmentManager()。如果使用getFragmentManager(),在跳转自定义Fragment是会编译报错。
wrong 2nd argument type....
而在自定义的Fragment中使用getFragmentManager()则没问题。
通过查看源码可知,Acrivity中getFragmentManager( )用的是包下的代码,
package android.app;
而Fragment则用
package android.support.v4.app;
这就好比有两大家族各族内的人员不能重名,
package android.app
下有一个小明,而V4下也有个小明。
那么自定义的Fragment是V4下的小明,如果在activity中用getFragmentManager( )强行给了android.app,那android.app坑定不会认同的。
如果使用
getSupportFragmentManager()
就没问题了,因为他是V4下的,所以可用把这个小明送回V4。
总结:使用哪种方法主要和定义文件类型的包(package)有关,包里存的哪种方法,你就用那种喽