android.app.DialogFragment

时间:2017-12-28 17:07:59

标签: android android-dialogfragment

我的应用中的minSDK是16.

我使用Fragments并阅读了很多关于android.app.Fragment和android.support.v4.app.Fragment之间的区别。大多数答案的解释是,如果我支持11以下的设备,我必须使用支持库。我的minSDK是16,所以我决定将android.app库用于我的所有Fragments和FragmentManagers。

现在我需要nestedFragments,为此我需要在DialogFragment中使用getChildFragmentManager()...本机Fragment库上的getChildFragmentManager需要api 17.类似问题的解决方案是使用来自support-v4的片段backport Android支持包。

我很困惑。我是否必须将我的应用中使用的所有Fragments和FragmentManager更改为支持包?仅在低于11的minSDK上使用支持包的建议怎么样?有人可以解释一下吗?

非常感谢!

2 个答案:

答案 0 :(得分:1)

建议您使用min SDK支持库< 11.如果要在运行<的设备上使用Fragments,则 required 使用它 11因为这是引入Fragment API的时候。但是,正如您所发现的,支持库还提供了在更高版本的Android中引入的其他API的向后兼容性。

大多数开发人员会建议您始终使用支持库来处理应用程序组件,例如活动和片段(以及支持库提供的通知和大多数其他功能),因为您获得了所有最新的API和功能,以及您获得更少的错误,因为Android团队无法修复已发布平台中的错误。

在幕后,支持库将尽可能利用平台类,因此您无需担心在两者之间进行选择。

答案 1 :(得分:1)

是的,你需要做其中任何一个

  1. 使用支持库使用getChildFragmentManager()提供的对话框也来自支持库。
  2. 使用android.app库并将api级别更改为17。
  3. 此外,this link很有用