比如网页新闻,一个 Tab 就是一个栏目,可以左右滑动。我们就可以用 Fragment 实现类似的效果。
实现
Android Studio 中有这样的模板,创建 Activity 时选择最后一个 Tabbed Activity 即是。
选择 Navigation Style 可以确定几种切换样式。
原理由 Fragment 决定每一个 Tab 对应的布局文件,以及其代码。
由 FragmentPagerAdapter 作适配。
控件 ViewPager 通过 setAdapter() 与 FragmentPagerAdapter 关联。
控件 TabLayout 通过 setupWithViewPager() 与 ViewPager 关联。
代码
代码基本是由创建的代码形成,我作了删减、改名,便于理解。
其中 onCreateView 我改为读取不同的布局文件,并且我们可以对不同的布局文件写不同的程序逻辑代码,如果逻辑代码太长,可参考:将 Activity 拆分为多个类。
问:每次滑动都会调用 onCreateView 吗?
答:只有滑到不存在过或已经消亡的 Fragment 时,才会调用 onCreateView。这东西始终保持当前 Fragment 和前一个 Fragment 不消亡。前一个 Fragment 是指滑向当前 Fragment 的 Fragment,可