我的应用中的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上使用支持包的建议怎么样?有人可以解释一下吗?
非常感谢!
答案 0 :(得分:1)
建议您仅使用min SDK支持库< 11.如果要在运行<的设备上使用Fragments,则 required 使用它 11因为这是引入Fragment API的时候。但是,正如您所发现的,支持库还提供了在更高版本的Android中引入的其他API的向后兼容性。
大多数开发人员会建议您始终使用支持库来处理应用程序组件,例如活动和片段(以及支持库提供的通知和大多数其他功能),因为您获得了所有最新的API和功能,以及您获得更少的错误,因为Android团队无法修复已发布平台中的错误。
在幕后,支持库将尽可能利用平台类,因此您无需担心在两者之间进行选择。
答案 1 :(得分:1)
是的,你需要做其中任何一个
getChildFragmentManager()
提供的对话框也来自支持库。android.app
库并将api
级别更改为17。此外,this link很有用