如何实现水平滑动而不使用支持库?

9
如果我不需要支持旧版本的 Android,只使用 API 17,是否有另一种方法来实现广告宣传的水平滑动(如 Gmail 中的滑动),而不使用 viewpager、fragmentsactivities(新 API 已经有 fragments...)等来摆脱支持库?
所有我找到的水平滑动教程都展示了如何使用支持库和 FragmentActivities 来完成。否则,如果我不能使用新 API 的本机类和方法,那么新 API 的优势在哪里?
2个回答

4

摆脱支持库

ViewPager只存在于Android支持库中。Android支持库不仅用于后向兼容。

新的API已经有了fragments

ViewPager可以使用本机API Level 11 fragments,但您可能需要创建自己的PagerAdapter。或者,您可以使用普通的ViewViewGroup对象来作为页面,而不使用任何fragments。

是否有替代方法来实现广告中所宣传的水平滑动

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

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


4
好的,我想我应该给出最佳答案并继续使用支持库。除了我想保持应用程序支持库免费之外,我没有任何特定的原因不使用viewpager。由于在Android指南中强烈推荐水平滑动,我认为在新的API中本地嵌入了另一种替代方式,而我却忽略了它。我认为通常描述的方法使用支持库,因为大多数开发人员可能希望使应用程序与仍然广泛传播的旧Android版本兼容。 - Danny
@CommonsWare 我在使用ViewPager时遇到了问题。您能否请看一下这个问题... http://stackoverflow.com/questions/30303488/how-to-update-fragments-data-used-in-viewpager-view-is-not-showing-the-updated - Arun Badole

1
您可以编写自己的FragmentPagerAdapter,该适配器与android.support.v4.app.Fragment无关,而是使用android.app.Fragment,以最小化对支持库的依赖。 您只需要为适配器创建自己的类(基于支持库中FragmentPagerAdapter的源代码,该源代码可在文件夹<android-sdks>/extras/android/support/v4/src/java/android/support/v4/app/中找到)。 唯一的修改在于import部分-您应该从android.app而不是android.support.v4.app引用FragmentFragmentManagerFragmentTransaction

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接