• Android做法说明(3)---Fragment使用app袋或v4包解析


    Android做法说明(3)---Fragment使用app袋或v4包解析



    1)问题简述

    相信非常多的朋友在调用Fragment都会遇到以下的情况:


    这个时候问题来了...偷笑

    究竟是用android.app下的Fragment还是用的android.support.v4.app包下的Fragment?



    答:事实上都能够,没错,都能够!!!我们都知道Fragment3.0(API 11)后引入的

    那么假设开发的app须要在3.0下面的版本号执行呢?比方另一点点市场份额的2.3!

    于是乎,v4包就这样应运而生了,而最低能够兼容到1.6版本号!

    至于使用哪个包看你的需求了,如今3.0下手机市场份额事实上已经不多了,随街都是

    4.0以上的,所以这个时候,你能够直接使用app包下的Fragment,然后调用相关的方法

    通常都是不会有什么问题的;假设你Fragment用了app包的,FragmentManager和FragmentTransaction

    都须要是app包的


    要么用所实用app,要么所实用v4,不然但是会报错的哦!

    当然假设你要自己的app对于低版本号的手机也兼容的话,那么就能够选择用v4包

    可是使用v4包非常多要注意的地方!



    2)使用v4包要注意的事项:


    ①假设你使用了v4包下的Fragment,那么所在的那个Activity就要继承FragmentActivity哦!

    案例:今天在xml文件里静态地载入fragment,然后重写了Fragment,可是在载入Activity的时候就报错了,

    大概的提示就是Fragment错误还是找不到什么的,name属性改了几次还是错!最后才发现是用了

    v4的包的缘故,仅仅需让自己的Activity改成FragmentActivity就可以!



    ②今天写这句代码的时候居然用不了,错误情况例如以下:


    有点莫名其妙啊,Fragment,FragmentManager,FragmentTransaction都是用的v4包啊,

    Activity也是继承FragmentActivity的啊?都改成app包就能够了,可是这不和我们用v4包的

    前提冲突了么?事实上也是有解决方法的哈?

    答:仅仅须要把getFragmentManager( )改成getSupportFragmentManager( )就能够了




    v4包下fragment遇到的问题临时就这些,以后遇到的话会更新记录的得意

    假设各位也能够把遇到的问题以及解决方法告诉小猪,分享是程序猿的美德哦!万分感谢!


    近期更新:


    2014.11.14今天遇到一个非常逗比的问题哈,是关于动态加载Fragment的

    包都用的v4包,Fragment也继承了FragmentActivity,获取FragmentManager也用了

    getSuppotFragmentManager,可是还是报错,错误信息例如以下:




    明明都改了的啊,并且代码也没错误的啊,


    后来问了下老大,才知道是布局代码写错了,add方法和replace方法调用后针对的对象是:ViewGroup(容器),就是布局;

    就说明是我们在载入fragment的布局文件那里错了,于是乎,打开布局文件:



    原来是之前自己用静态方法载入的时候用的是fragment标签,把这个改成一个布局就能够了,比方改成FrameLayout

    这个时候执行就没问题了!fragment不是容器!!~








    版权声明:本文博主原创文章。博客,未经同意不得转载。

  • 相关阅读:
    FreeMarker MyEclipse IDE
    Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring
    Mybatis SqlSessionTemplate 源码解析
    Mybatis Interceptor 拦截器原理 源码分析
    MyBatis Mapper 接口如何通过JDK动态代理来包装SqlSession 源码分析
    MyEclipse SVN 下面切换用户的解决方案
    SpringMVC 多个数据源 配置多个事物管理器 Multiple Transaction Managers
    Activiti 获取定义
    [No000066]python各种类型转换-int,str,char,float,ord,hex,oct等
    [No000065]python 获取当前时间
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4837154.html
Copyright © 2020-2023  润新知