在android.support.v4.app.FragmentManager的文档中:
“框架的FragmentManager的静态库支持版本。用于编写在Android 3.0之前的平台上运行的应用程序。在 Android 3.0或更高版本上运行时,仍然使用此实现;它不会尝试切换到框架的实现。有关类概述,请参阅框架SDK文档。“
那么,我是否需要在运行时进行检查并使用相应的FragmentManager来运行应用程序的Android版本?即如果在android 3.0+而不是getSupportFragmentManager()
上调用getFragmentManager()答案 0 :(得分:12)
只要您导入支持库,在Android 3.0+上使用getSupportFragmentManager()
并没有错。如果您想将getFragmentManager()
用于SDK 11+,那就去吧;请记住,您可能会if/else
使用版本检查进行大量代码。
答案 1 :(得分:6)
如果您使用API> = 14,则使用getFragmentManager()。如果您想要与API 14以下的设备兼容,那么您可以使用getSupportFragmentManager()。因此,getSupportFragmentManager()用于向较旧的平台提供较新的功能。
答案 2 :(得分:0)
如果您在项目或应用程序中使用支持包,则必须使用getSupportFragmentManager,因为这将返回fragmentManager以与与此活动关联的片段进行交互。另一方面,如果不是,则可以使用getFragmentManager。它仅取决于您在应用中使用的内容。