如何在不使用支持库的情况下实现水平滑动?

Posted

技术标签:

【中文标题】如何在不使用支持库的情况下实现水平滑动?【英文标题】:How can I implement horizontal swipe not using the support library? 【发布时间】:2013-02-01 08:22:38 【问题描述】:

如果我不需要授予对旧版本 android 的支持并且可以只使用 API 17,是否有另一种方法来实现广为宣传的水平滑动(如在 gmail 中)而不使用 viewpager、fragmentsactivities(新 API 已经有碎片...)等摆脱支持库?

我找到的所有关于水平滑动的教程都展示了如何使用支持库和 FragmentActivities 来做到这一点。否则,如果我不能使用它们的原生类和方法,那么新 API 的优势是什么?

【问题讨论】:

【参考方案1】:

摆脱支持库

ViewPager 仅存在于 Android 支持库中。 Android 支持库不仅仅用于向后移植。

新 API 已有片段

ViewPager 可以使用本机 API 级别 11 片段,但您可能需要创建自己的 PagerAdapter。或者,您可以使用不带任何片段的ViewPager,只使用普通的ViewViewGroup 对象作为页面。

是否有另一种方法来实现广为宣传的水平滑动

欢迎您编写自己的替换 ViewPager。大多数开发人员更愿意重用ViewPager,以降低开发和维护成本。

还有HorizontalScrollView,一个开源的HorizontalListView,等等。

【讨论】:

好的,所以我想我应该给出最好的答案,然后继续使用支持库。除了我想保持应用程序支持库免费这一事实之外,我没有任何不使用 viewpager 的具体理由。由于在 android 指南中如此推荐水平滑动,我认为在我忽略的新 API 中原生嵌入了另一种方法。我认为通常描述的方法使用支持库,因为大多数开发人员可能希望使应用程序与仍然广泛传播的旧 android 版本兼容。 @CommonsWare 我在使用 ViewPager 时遇到问题。你能看看这个...***.com/questions/30303488/…【参考方案2】:

您可以编写自己的FragmentPagerAdapterandroid.app.Fragment 一起使用而不是android.support.v4.app.Fragment 以最大程度地减少对支持库的依赖。您只需要为适配器创建自己的类(基于支持库中的FragmentPagerAdapter,可以在文件夹<android-sdks>/extras/android/support/v4/src/java/android/support/v4/app/ 中找到源代码)。仅在导入部分进行修改 - 您应该从 android.app 引用 FragmentFragmentManagerFragmentTransaction 而不是 android.support.v4.app

【讨论】:

以上是关于如何在不使用支持库的情况下实现水平滑动?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用标签的情况下制作滑动屏幕?

在不使用支持库的情况下使用选项卡进行活动?

如何在不使用存储库的情况下将Docker镜像从一个主机复制到另一个主机

如何在不克隆它所连接的存储库的情况下触发 Jenkins 构建?

如何在不使用 Python 中的外部库的情况下解析 arff 文件

(如何)我可以在不安装完整的 boost 库的情况下使用 boost::spirit X3 吗?