在为Android 4.1及更高版本开发时使用支持库

时间:2014-12-22 00:02:39

标签: android android-support-library

我的应用的当前minSdkVersion16targetSdkVersioncompileSdkVersion21

当我第一次启动应用时,minSdkVersion10,我正在学习的那本书使用了v4支持库。

我已经浏览了我的应用程序,我发现这些是我在v4支持库中使用的导入:

ActionBarDrawerToggle
DialogFragment
DrawerLayout
Fragment
FragmentActivity
FragmentManager
FragmentStatePagerAdapter
ListFragment
NavUtils
ViewPager

由于我已经提出minSdkVersion,我认为我不再需要使用其中大部分支持版本。我相信我仍然需要使用ViewPagerDrawerLayout

developer页说:

  

警告:使用支持库中的类时,请确保从相应的包中导入该类。

     

例如,在应用ActionBar类时:

     使用支持库时

android.support.v7.app.ActionBar。

     

android.app.ActionBar仅在API级别11或更高级别开发时。

所以,我的问题是:

1)我可以简单地使用类似于android.app.Fragment的导入来完成上述所有操作,因为我的API级别至少为16吗? (ViewPagerDrawerLayout除外)

2)对于ViewPagerDrawerLayout,使用v4或v7或其他支持库版本有区别吗?

任何建议表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:2)

首先,使用Fragment及其所有相关用具(FragmentManagerFragmentTransaction和& c),最重要的是使用导入始终 (也就是说,不要混合搭配)。我认为,这是文档想要提出的观点。

那说......

如果您想使用这些类的本机版本而不是支持版本,可以android.support.v4.app.Fragment的用法换成android.app.Fragment,但要小心:支持库还添加了一些API级别16中没有的方法和回调(一个重要的例子是getChildFragmentManager()。所以,基本上,它归结为你所使用的片段的所有功能是否都可用于您将支持的所有API级别中的本机片段。

此外,使用支持库Fragments意味着它们在所有Android版本中应该完全相同,而它们可能在本机实现中存在差异。

在我们的特定情况下,我们决定继续使用支持库,但是YMMV。

关于第二个问题,我不认为有一个特定于v7的ViewPager(至少,我认为是这样)。 v7库是附加组件(appcompat,gridlayout和& c)。