Fragment的管理:getFragmentManager和getSupportFragmentManager的使用区别add报错

昨晚在对着Fragmet的新闻客户端例子练习了一次之后,对获取FragmentManager的两种方法getFragmentManager()和getSUpportFragmentManager()的区别有点疑问。在众多博客之中查阅时得出的答案基本是:使用3.0以上系统获取FragmentManager使用getFragmentManager();使用3.0以下系统获取FragmentManager使用getSupportFragmentManager()。然而本人还是不懂怎么区分,在Stack Overflow上查阅加上自己的一点理解,大概得到了以下解释(如有不对请指正!感谢!)

***************************************

首先,Fragmet在使用时是有两个包的,分别是app包和v4包。v4包主要用来兼容低版本系统也能正常显示Fragment,而app包在安卓4.2系统之前的设备运行Fragment时,程序会崩溃。因此我们一般使用Fragment都选择使用v4包中的Fragment以确保低版本的系统运行正常。

(以下都建立在使用v4包中的Fragment的前提之下)

对Fragment进行一系列操作时,我们都会通过使用FragmentManager进行事务管理,那么获取FragmentManager就是管理的第一步了。

在Activity中:使用v4库的Fragment,要求Activity必须继承于FragmentActivty,并且对应的也该使用v4库中的方法获取FragmentManager。

由于v4库不能直接获取FragmentManager,因此这里使用getSupportFragmentManager()间接获取FragmentManager。

※工程中Activity默认继承的AppCompatActivity也可以使用,查阅源码后发现AppCompatActivity是继承于FragmentActivity的,所以也可以放心使用。对于3.0以上版本的(也就是不需要使用v4包的Fragment的),则可以直接继承Activity,可以不继承FragmentActivity。

在Fragment中:可以使用getFragmentManager()直接获取FragmentManager。
————————————————
版权声明:本文为CSDN博主「tahlia_」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/tahlia_/article/details/77970377

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值