我正在开发一个支持Android> = 4.0的应用程序。它使用android.app
包中的片段。由于我面临着4.0中较旧的片段实现(例如此问题)的问题,该问题已在支持库中修复,因此我正在考虑从支持库切换回片段实现,以获得更可靠和一致的实现。
你对这个有什么看法?在为Android 4开发时,您是否正在使用支持库中的片段,即使它们已经可用?
我正在开发一个支持Android> = 4.0的应用程序。它使用android.app
包中的片段。由于我面临着4.0中较旧的片段实现(例如此问题)的问题,该问题已在支持库中修复,因此我正在考虑从支持库切换回片段实现,以获得更可靠和一致的实现。
你对这个有什么看法?在为Android 4开发时,您是否正在使用支持库中的片段,即使它们已经可用?
Answers:
根据我的经验,在所有Android设备上使用相同的片段实现是一个很大的优势。当状态使用原生片段保存在Android 4.0上时,我无法摆脱所有NullPointerExceptions,而支持库将它们全部消失了。到目前为止,我还看不到这种方法有什么缺点。
因此,现在我对自己的问题的回答是:在为Android 4.x开发时,使用支持库中的片段是一个好主意。支持库已修复了一些错误,这些错误仍然存在于较旧的片段实现中,并且经常进行更新,以提供更多错误修复。
objectAnimator
)。如果使用ViewPager
,则意味着必须使用v13支持库中的适配器,否则不能同时使用viewpager和翻转动画。
尽管针对Android 4.0以上版本,但我不得不对必须包含支持库感到沮丧-但似乎官方建议:
Android支持库程序包包含几个可以包含在您的应用程序中的库。这些库中的每一个都支持特定范围的Android平台版本和功能集。
本指南说明了支持库提供的重要功能和版本支持,以帮助您决定应在应用程序中包括哪些功能。通常,我们建议包括v4支持和v7 appcompat库,因为它们支持多种Android版本,并提供用于推荐用户界面模式的API。
http://developer.android.com/tools/support-library/features.html
恕我直言,如果您只打算为4.0开发,我建议您使用本机库,因为可执行文件会变小。的确,您可能会在早期版本中遇到错误问题,但是我认为,解决这些问题中的大多数应该是微不足道的。另外,如果您在4.0及更高版本上运行,则兼容性库应该映射到本机片段。因此,无论如何,您可能最终不得不面对此类问题。支持库的问题是,您有很多类出现2x(一次出现在支持程序包结构中,一次出现在“本机”程序包结构中),这会使开发变得更加麻烦。
但是,如果您也要发布4.0之前的应用,则支持库周围没有办法。另外,由于使用2.3的所有用户约占38%,因此包含此OS版本可能具有商业意义。在这种情况下,您可以将支持库与Jake Wartons ActionBarSherlock结合使用(或在最终发布后与Google支持的ActionBar库结合使用)。
似乎现在最好使用支持库,因为我在这里看到了以下声明:https://developer.android.com/reference/android/app/Fragment.html
在API级别P中不推荐使用该类。使用支持库片段可在所有设备上实现一致的行为并访问Lifecycle。