码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2015-08-16 16:47:30      阅读:140      评论:0      收藏:0      [点我收藏+]

标签: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拉下来复制一份就省略了


如此备注..

版权声明:本文为博主原创文章,未经博主允许不得转载。

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

标签:fragmentpageradapter

原文地址:http://blog.csdn.net/yung7086/article/details/47702397

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!