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()

你可能感兴趣的:(getSupportFragmentManager()方法不可用解决办法和原因)