android.app.Fragment和android.support.v4.app.Fragment之间的区别

时间:2013-02-27 09:54:52

标签: android android-fragments

android.app.Fragmentandroid.support.v4.app.Fragment之间的区别是什么,以及应该使用每种情况的具体情况是什么?

6 个答案:

答案 0 :(得分:283)

android.support.v4.app.Fragment是Android支持库中的Fragment类,它是一个兼容包,允许您在旧版本的Android上使用Android的一些较新功能。

android.app.Fragment是Android SDK原生版本中的Fragment类。它是在Android 3(API 11)中引入的。

如果您想让您的应用使用片段,并希望在API 11之前定位设备,则必须使用android.support.v4.app.Fragment。但是,如果您只定位运行API 11或更高版本的设备,则可以使用android.app.Fragment

编辑:包含操作系统的android.app.Fragment is now deprecated(从API级别28开始),每个人都应该转向使用支持库实现。

答案 1 :(得分:50)

截至2018年:

来自android.app.Fragment documentation

  

此类在API级别28中已弃用。
  使用支持库Fragment可以在所有设备上实现一致的行为并访问Lifecycle。

因此,现在应该在任何地方使用支持片段(android.support.v4.app.Fragment)而不是本地片段(android.app.Fragment)。

答案 2 :(得分:12)

我完全使用android.support.v4.app.Fragment

我编写的所有应用都需要支持Android 2.3,这是最简单的方法。

如果您支持11岁以上,请坚持android.app.Fragment

答案 3 :(得分:4)

如果您的应用程序是针对API 11或更高版本的,那么您可以使用android.app.Fragment,并且您的APK文件会更小。

否则,将android.support.v4.app.Fragment库添加到项目中以支持较旧的Android API版本(Android 3.x)。

答案 4 :(得分:2)

android.support.v4.app.Fragment是一个库,可用于向旧API版本提供向后兼容性。

在API级别11(以及其他功能)上添加了片段,您应该包含该库以将这些功能扩展到API 11之前的设备。这是一个有用的库,我建议看一下ActionBarSherlock,它将操作栏扩展到pre-API v11设备。

答案 5 :(得分:-1)

如果您的应用程序针对API 11或更高级别,您可以使用android.app.Fragment,它将减少APK大小。 否则使用android.support.v4.app.Fragment