这是我参与8月更文挑战的第5天,活动详情查看:8月更文挑战
周五啦,这是最后一篇关于基本 View 的使用文章了,内容是 ViewPager2
迟来的补充:为什么讲这些 View 的使用
最初写这一系列的文章我倾向于提高视角,尽量从开发者要做的事或者面对的问题开始塑造目的性,做一个对初学者和其他领域开发者都有些帮助的系列教程。所以第二篇我就尝试写了 View 和数据的关系、生命周期的问题、MVVM 的原则和实现等,可后来写文章的过程中发现,当我想举个例子是很难避开详细代码的,如果大家对于「代码大概长什么样」有不同的理解,那我的想法就是空中楼阁了。
连续写了好多 View 的使用,最大的目的是统一各位对 View 的理解,方便接下来写一些实践中会遇到的挑战和解决思路。其次,实践类的文章不会再详细讲述每一步如何配置,如果遇到基础知识上需要补充的地方,我可以放 View 使用方法的链接,形成更加立体的知识结构。
正文:扩展屏幕内容的另一种思路:ViewPager
上次提到列表能在屏幕有限的空间显示无限的数据,其实这篇介绍的 ViewPager 也有相似的功能。现在说的 ViewPager 是一个泛指的概念,表示类似 ViewPager 交互的 UI 样式,我们具体使用的类是比较新的 ViewPager2。
效果展示:
是不是很常见呢,我常用的微信、网易云音乐、Bilibili 等 App 中首页都用了这种效果,也是最基础的必备技能了。
ViewPager 跟列表相比的区别是交互方式,ViewPager 是一条一条地切换,而列表可以根据滑动手势一次性切换很多条。在实际使用中,Viewpager 经常是横向滑动的,每一页中还有子 ViewPager 或者可以纵向滑动的列表,横竖交织提高了用户选择内容的效率,几乎是 Android App 的设计标准了。
实现过程
ViewPager2 比起 ViewPager 简单了一点,因为 ViewPager2 是基于 RecyclerView 实现的,学习绘制列表时掌握的知识直接拿过来就能用。
上面的效果只需要两步,搭建 xml 和写一个 Adapter。
这里我们使用 FragmentStateAdapter 配合 Fragment 还能再简化代码。
Fragment 是一种 View 的组织管理方式,后面会详细介绍。
全部代码都截图贴上了,就是这么简单,也可以到 Github 看文字版。
结
前面补充过想说的话了,不啰嗦了。
日更好难,感谢观看。读到这里的朋友如果觉得文章很不符合预期,可以告诉我希望看到什么内容吗,再次感谢。