关于app.FragmentManager和v4包的FragmentPagerAdapter冲突

这几天发现一个问题我用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拉下来复制一份就省略了


如此备注..

posted on 2017-06-07 08:02  yjbjingcha  阅读(1472)  评论(1编辑  收藏  举报

导航