这几天发现一个问题我用getFragmentManager()得到FragmentManager不能放到FragmentPagerAdapter里面去.因为FragmentPagerAdapter里面构造参数必须是v4包下的FragmentManager,而我activty里面getFragmentManager得到是app包下的FragmentManager 有次产生冲突
一般解决办法就是不是继承activity而是继承fragmentactivity ..可我就是不想我就要actvity.因为fragmentactivity 是为了兼容3.0一下版本我根本不要考虑3.0一下 ,安卓上半年碎片分析3.0一下只占6%的份额,很多app根本都不考虑2.3啥啥的 直接最低4.0 .
我是做一个ble的项目 由于ble是基于安卓4.3的,所以我的项目最低版本就是4.3 项目用到viewpager时候与用到了FragmentPagerAdapter适配器,可是发现默认的FragmentPagerAdapter的构造参数必须用的v4包下的FragmentManager.而我既然基于4.3开发呀 我管理fragment界面直接用的是activity.或许会说为什么不用f呢,我们知道fragmentactivity是android-support-v4兼容包的 既然是兼容包是为了兼容3.0一下版本我都到4.3了为什么还要考略兼容3.0一下呢
那问题总结下:
因为是最低版本4.3所以我用到fragment时候不想用fragmentactivity 直接用actiity多方便定义基类也方便多了.
问题是fragment的FragmentPagerAdapter适配器默认需要传一个参数必须是v4包的FragmentManager,而我用的activity得到的FragmentManager是app包下的
这下凌乱.而发现app包下根本没有FragmentPagerAdapter..真是差点没骂谷歌脑残..
解决方法 直接去v4报下找到FragmentPagerAdapter源码把他全部复制下来自己建立一个类,把里面所有导入FragmentManager的改成app包下的 这样就解决了,
,最后还是不相信谷歌有这么脑残,终于找到在v13包下的FragmentPagerAdapter 这个类用到FragmentManager是app包下的FragmentManager,那就把v13包倒进来
就可以轻松使用actvity类来得到FragmentManager实现 ,
万一你觉得用v13包只用了这么一个类浪费 那就直接把v13包的FragmentPagerAdapter拉下来复制一份就省略了
如此备注..
版权声明:本文为博主原创文章,未经博主允许不得转载。
关于app.FragmentManager和v4包的FragmentPagerAdapter冲突
原文地址:http://blog.csdn.net/yung7086/article/details/47702397