176

android.app.Fragment和之间有什么区别android.support.v4.app.Fragment,应该在什么情况下使用它们?

4

6 回答 6

290

android.support.v4.app.Fragment是android支持库中的Fragment类,它是一个兼容包,可以让你在旧版本的Android上使用Android的一些较新的特性。

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

如果你想让你的应用使用 Fragments,并且想要针对 API 11 之前的设备,你必须使用android.support.v4.app.Fragment. 但是,如果您只针对运行 API 11 或更高版本的设备,则可以使用android.app.Fragment.

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

于 2013-02-27T10:00:07.797 回答
57

截至 2018 年:

android.app.Fragment 文档

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

android.support.v4.app.Fragment所以现在应该到处使用支持片段( )而不是原生片段( android.app.Fragment)。

于 2018-03-19T08:56:44.180 回答
12

android.support.v4.app.Fragment专门用。

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

如果您支持 11+,请坚持使用android.app.Fragment.

于 2013-02-27T10:00:49.223 回答
4

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

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

于 2017-08-18T11:19:32.267 回答
2

android.support.v4.app.Fragment是一个库,您可以使用它来获得旧 API 版本的向后兼容性。

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

于 2013-02-27T10:04:32.823 回答
-2

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

于 2018-03-25T13:46:34.190 回答