Android 实现多个 Fragment 左右滑动

作者:vkvi 来源:千一网络(原创) 日期:2017-3-14

比如网页新闻,一个 Tab 就是一个栏目,可以左右滑动。我们就可以用 Fragment 实现类似的效果。

实现

Android Studio 中有这样的模板,创建 Activity 时选择最后一个 Tabbed Activity 即是。

选择 Navigation Style 可以确定几种切换样式。

Tabbed Activity

原理

  • Fragment 决定每一个 Tab 对应的布局文件,以及其代码。
  • FragmentPagerAdapter 作适配。
  • 控件 ViewPager 通过 setAdapter() 与 FragmentPagerAdapter 关联。
  • 控件 TabLayout 通过 setupWithViewPager() 与 ViewPager 关联。

代码

代码基本是由创建的代码形成,我作了删减、改名,便于理解。

其中 onCreateView 我改为读取不同的布局文件,并且我们可以对不同的布局文件写不同的程序逻辑代码,如果逻辑代码太长,可参考:将 Activity 拆分为多个类

问:每次滑动都会调用 onCreateView 吗?

答:只有滑到不存在过已经消亡的 Fragment 时,才会调用 onCreateView。这东西始终保持当前 Fragment 和前一个 Fragment 不消亡。前一个 Fragment 是指滑向当前 Fragment 的 Fragment,可能在当前 Fragment 的左边,也可能在右边。

举例:

假如有 A、B、C 三个 Fragment。

  • 刚打开 APP 时:自动调用 onCreateView() 创建 A、B 两个 Fragment。
  • 当由 A 滑向 B 时:A 续存、B 续存。
  • 当由 B 滑向 C 时:A 消亡,B 续存,调用 onCreateView 创建 C。
  • 当由 C 滑向 B 时:C 续存,B 续存。
  • 当由 B 滑向 A 时:C 消亡,B 续存,调用 onCreateView 创建 A。

如何让程序来滑

2 是指第 2 个 Tab,不是指第 3 个。

相关阅读

你前面那位网友看了:无组件上传文件-错误的五行、六行代码实现上传

▲▲▲嘿,欢迎转载传播本站原创文章,尽量保留来源噢。▲▲▲

文章评论
标题:必填
内容:
本站永远终止与捏造“罪名”不支付广告费的某度联盟合作。
vkvi
vkvi

作者简介: vkvi,致力于 .NET Web 开发、移动开发的技术推广,在 .NET、SQL Server、Windows Server 等方面有深入研究和丰富经验,10 年间共计撰写文章 4000 余篇。 主持金融、国土、农业、电商等多个行业项目执行, 推行“技术提升生产力、人心决定成功率”的管理理论。 联系他