getSupportFragmentManager()方法不可用解决办法和原因

getSupportFragmentManager()方法不可用解决办法和原因


在Android开发中,少不了Fragment的运用。目前在实际运用中,有v-4包下支持的Fragment以及app包下的Fragment,这两个包下的FragmentManager获取方式有点区别,所以大家在运用的过程中,一定要注意自己的导的包。

app包下FragmentManager用

Fragmentmanager  fragmentManager=getFragmentManager();


v-4包的FragmentManager用

FragmentManager   fragmentManager=getSupportFragmentManager()   获取


但是getSupportFragmentManager()  有其运用范围,只能在部分activity中运用,不能再activity中运用。当遇到getSupportFragmentManager()  没定义的问题时,修改下activity为

FragmentActivity或者AppCompatActivity。


AppCompatActivity和Activity的区别

首先是AppCompatActivity默认带标题

但Activity不带

而且AppCompatActivity和 
requestWindowFeature(Window.FEATURE_NO_TITLE); 
有冲突

当活动继承AppCompatActivity时再设置取消标题则程序会直接挂掉 

FragmentActivity和Activity的区别

Fragment是Android 3.0以后的东西,为了在低版本中使用Fragment就要用到android-support-v4.jar兼容包,而FragmentActivity就是这个兼容包里面的,它提供了操作Fragment的一些方法,其功能跟3.0及以后的版本的Activity的功能一样。
下面是API中的原话:

FragmentActivity is a special activity provided in the Support Library to handle fragments on system versions older than API level 11. If the lowest system version you support is API level 11 or higher, then you can use a regular Activity.

主要区别如下:
1、FragmentActivity 继承自Activity,用来解决Android 3.0之前无法使用Fragment的问题,所以在使用的时候需要导入android-support-v4.jar兼容包,同时继承 FragmentActivity,这样在Activity中就能嵌入Fragment来实现你想要的布局效果。 
2、当然Android 3.0之后你就可以直接继承自Activity,并且在其中嵌入使用Fragment。 
3、获得FragmentManager的方式也不同 
Android 3.0以下:getSupportFragmentManager() 
Android 3.0以上:getFragmentManager()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值