zoukankan      html  css  js  c++  java
  • 关于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拉下来复制一份就省略了


    如此备注..

  • 相关阅读:
    An analysis of a simple Java basic interview question: short s1=1; s1 = s1 +1 will report an error?
    <bits/stdc++.h> in C++
    linux 下配置可视化git 冲突合并工具kdiff3
    加分
    对老师的意见和课程总结
    12月19日
    12月18日
    12月17日
    12月16日
    12月15日
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/6955087.html
Copyright © 2011-2022 走看看