不使用V4支持库的带选项卡的Android滑动视图

时间:2013-10-22 16:54:17

标签: android android-viewpager android-support-library swipeview

我之前已经多次创建了一个带有标签described in the android documentation的滑动视图。事实上,单步执行Eclipse项目向导几乎可以使用ViewPager为您提供基本的UI。

我的问题是:

我正在构建的应用程序将仅支持Android 4.0(API级别14)。所以,我正在考虑放弃支持包。但是,我似乎找不到使用不使用ViewPager的标签的滑动视图示例(仅在支持包中提供)。

是否有api级别14&>相当于ViewPager,有人可以给我一个工作示例,说明如何在不使用支持库的情况下使用Tabs界面实现滑动视图。

否则,有人可以提出一个很好的论据,为什么我不应该打扰,使用支持包,只是快乐。

编辑:我正在寻找的是有关支持库特定功能(如ViewPager)的权威答案。这些功能最终是否会合并到核心API中?或者我们是否会继续包含这些类型功能的支持包?请具体说明API版本和时间表。

编辑-1 / 15:我正在更新此问题以停止我收到的“我太'的答案。在最初发布此问题时,Android Developer文档对支持库的目的更加模糊,因为它们与核心SDK中未包含的功能相关。他们已经更新了他们的文档以澄清事情:

  

Android Support Library软件包是一组代码库,提供Android框架API的向后兼容版本以及仅通过库API提供的功能。

这肯定会让事情变得清晰起来,并通知开发人员不要期望像ViewPager这样的东西能够融入核心SDK功能。我已经接受了与我遇到的问题最相关的答案。这就是如何将支持包功能添加到现有项目中,而不必显着更改代码库。

6 个答案:

答案 0 :(得分:12)

我知道这是一个非常古老的问题,但我认为这仍然是相关的。 我正在寻找一种解决方法:使用viewpager而不必将我的所有项目都转换为v4支持库。

答案是 v13支持库!。通过这种方式,您可以在活动中使用viewpager,然后使用android.support.v13.app.FragmentStatePagerAdapter来保持与片段和其他有用内容的兼容性。

希望它可以帮助一些谷歌上瘾的搜索者。

答案 1 :(得分:1)

如@Luksprog所述,您可以在自己的项目中复制ViewPager代码,并用本机代码替换支持库引用。很可能你需要对FragmentPagerAdapter,FragmentStatePagerAdapter和PagerAdapter做同样的事情。我从grepcode.com获取代码。

虽然我是Android的初学者,但我花了2个小时才完成这个技巧。但这意味着要维护更多代码,最后我又转回支持库。

答案 2 :(得分:0)

现在我不是Android SDK专家,但我会使用支持库。以下是RenderScript documentation

的摘录
  

“我们强烈建议您使用支持库API进行访问   RenderScript因为它们包含了最新的改进   RenderScript计算框架并提供更广泛的设备   兼容性“。

现在这是针对v8支持库的,但我猜这个建议可以推断出来。有意义的是,最新的改进将在Android的支持库中,因为它们可以独立于平台更新进行更新。

请确保在发布之前启用ProGuard,这样您就可以修剪API未使用部分的多余脂肪。

答案 3 :(得分:0)

你也可以使用ViewFLipper课,但你必须手动实现Animations和GestureDetector,你可以找到一些代码here

答案 4 :(得分:-1)

您应该使用支持库包,因为它提供了向后兼容的Android Framework API版本。 根据我的经验,使用他们推荐的是处理android的最佳方式。

或阅读本文

http://www.velir.com/blog/index.php/2010/11/17/android-snapping-horizontal-scroll/

答案 5 :(得分:-1)

一般鼓励使用支持库,因为它包含每个API的最新代码段。 B.Young指向RenderScript的内容适用于所有其他API。

--------无需继续阅读。

我们举一个例子。假设在发布Android 8时,他们引入了一个新类来保存引用称为FastMap的键的值。为了增加对旧版本的支持,Google在这个新类中发布了一个支持库,两个月后在性能测试期间,他们找到了提高效率的方法,因此他们使用优化版本的FastMap发布了该支持库的更新(因为Android OS被冻结在手机中。)

此外,由于大量的版本总是有点匆忙,谷歌意识到他们引入了一个非常具体的错误(是的,它发生了),它在新的更新中得到修复。

因此,如果要为Android 8及更高版本构建Android应用并使用内置API,那么您将缺少支持代码中的所有这些改进。