8

在 android.support.v4.app.FragmentManager 的文档中:

“静态库支持版本的framework的FragmentManager。用于编写运行在Android 3.0之前的平台上的应用程序。运行在Android 3.0以上的时候,还是使用这个实现,不会尝试切换到framework的实现。见用于类概述的框架 SDK 文档。”

那么,我是否需要在运行时进行检查并为运行应用程序的 android 版本使用适当的 FragmentManager?即如果在 android 3.0+ 上调用 getFragmentManager() 而不是 getSupportFragmentManager()

4

3 回答 3

12

getSupportFragmentManager()只要您导入了支持库,在 Android 3.0+上使用就没有问题。如果您想getFragmentManager()用于 SDK 11+,那就去吧;请记住,您可能正在if/else编写大量带有版本检查的代码。

于 2012-09-12T02:17:18.327 回答
6

如果您使用 API >= 14,则使用 getFragmentManager()。如果您希望与 API 14 以下的设备兼容,则可以使用 getSupportFragmentManager()。因此,getSupportFragmentManager() 用于向旧平台提供新功能。

于 2015-04-19T10:17:29.837 回答
0

如果您在项目或应用程序中使用支持包,那么您必须使用 getSupportFragmentManager,因为这是您返回 fragmentManager 以与与此活动关联的片段交互的方式。另一方面,如果您不是,那么您可以使用 getFragmentManager。这仅取决于您在应用程序中使用的内容。

于 2016-01-13T16:27:20.817 回答