1.最低支持版本不同

android.app.Fragment 兼容的最低版本是android:minSdkVersion="11" 即3.0版

android.support.v4.app.Fragment 兼容的最低版本是android:minSdkVersion="4" 即1.6版

2.需要导jar包

fragment 在定义的时候,要导入的包不同

android.support.v4.app.Fragment 需要引入包android-support-v4.jar

android.app.Fragment  需要导入的是android-app.jar

3.继承的父类不同,在fragmentManager  在Activity中取的方法不同

android.support.v4.app.Fragment使用  fragmentManager=getSupportFragmentManager()获得 ,并且当前的类必须继FragmentActivity

android.app.Fragment使用 fragmentManager=getFragmentManager() 获得  ,继承Activity即可。

4.标签的使用情况(这点最重要了,也是决定你到底使用v4包中的Fragment还是app包的fragment

v4包中的Fragment在Activity的布局中是可以使用标签的,有些博客中也叫静态地载入fragment。

android.app.Fragment在Activity布局中是不可以使用标签的,需要在程序中通过add或者replace的方式添加。

总结起来就是:当这个Activity的布局中有fragment标签的时候,这个Activity必须继承FragmentActivity,也就是使用V4包的fragment,否则就会抛出android.view.InflateException: Binary XML file line #69: Error inflating class fragment异常。

题外话:

我们使用Fragment的时候,选择哪个包下的Fragment呢?

到底是用Android.app下的Fragment还是用的android.support.v4.app包下的Fragment?

我们都知道Fragment是3.0(API 11)后引入的,那么如果开发的app需要在3.0以下的版本运行呢?比如还有一点点市场份额的2.3!

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

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

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

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

都必须是app包的

要么  全部用app,要么全部用v4,不然可是会报错的哦!

更多相关文章

  1. Android——SpannableString实现带圆角标签效果
  2. Android一些关于分辨率和布局的设置
  3. 【笔记】Android高版本Apache HTTPClient变更兼容和HTTP请求
  4. android的五大布局详解
  5. android 使用Activity类布局时怎样让图片居中
  6. 创建android逐帧动画的两种方式 布局和java代码
  7. Android五大布局(二)——RelativeLayout、TableLayout 和AbsoulteL

随机推荐

  1. Redis 6.0 稳定版发布,支持多线程 IO
  2. 为什么越来越多的人想成为全栈工程师?
  3. 【源码下载】50套高大上的后台管理系统模
  4. Apache Kafka 不需要管理员:删除 Apache Z
  5. React应该如何优雅的绑定事件?
  6. Apache Kafka 2.6.0 有哪些值得关心的变
  7. Delta Lake 第一篇论文发布了
  8. 40岁,我还是那个每天加班编程的”老“程序
  9. 我都30岁了,零基础想转行去学编程,靠谱吗?
  10. 学习vue实现双向绑定【附源码下载地址】