如何在不使用支持库的情况下实现水平滑动?
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
,只使用普通的View
或ViewGroup
对象作为页面。
是否有另一种方法来实现广为宣传的水平滑动
欢迎您编写自己的替换 ViewPager
。大多数开发人员更愿意重用ViewPager
,以降低开发和维护成本。
还有HorizontalScrollView
,一个开源的HorizontalListView
,等等。
【讨论】:
好的,所以我想我应该给出最好的答案,然后继续使用支持库。除了我想保持应用程序支持库免费这一事实之外,我没有任何不使用 viewpager 的具体理由。由于在 android 指南中如此推荐水平滑动,我认为在我忽略的新 API 中原生嵌入了另一种方法。我认为通常描述的方法使用支持库,因为大多数开发人员可能希望使应用程序与仍然广泛传播的旧 android 版本兼容。 @CommonsWare 我在使用 ViewPager 时遇到问题。你能看看这个...***.com/questions/30303488/…【参考方案2】:您可以编写自己的FragmentPagerAdapter
与android.app.Fragment
一起使用而不是android.support.v4.app.Fragment
以最大程度地减少对支持库的依赖。您只需要为适配器创建自己的类(基于支持库中的FragmentPagerAdapter
,可以在文件夹<android-sdks>/extras/android/support/v4/src/java/android/support/v4/app/
中找到源代码)。仅在导入部分进行修改 - 您应该从 android.app
引用 Fragment
、FragmentManager
和 FragmentTransaction
而不是 android.support.v4.app
。
【讨论】:
以上是关于如何在不使用支持库的情况下实现水平滑动?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用存储库的情况下将Docker镜像从一个主机复制到另一个主机
如何在不克隆它所连接的存储库的情况下触发 Jenkins 构建?