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的区别
下面是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()