1. 实现说明
本文旨在通过TabLayout和ViewPager打造最常见的底部导航栏+多Tab结构的Android App。
1.1 斗鱼Android客户端结构
先来简要看看斗鱼客户端基本结构:
首页结构
直播页结构
1.2 模仿结构示意图
模仿首页
模仿直播页
其中,首页和直播页最大的区别是首页只有5个tab,儿直播页则有10个tab,其中几个tab又有若干个子Tab。
2. 代码实现
2.1 主体代码实现
采用Android官方提供的TabLayout+ViewPager结构来实现。
上面涉及到的MainPageFragment和OnAirPageFragment分别是点击底部“首页”和“直播”所对应的页面,其中BaseContentFragment类对应的每个子Tab的Fragment。
对应的xml文件如下:
2.2 注意问题
可能你会注意到上面有个注释bug/bug fixed,对的,如果采用方法一来实现的话,将会出现下图所示现象:
如上图所示:将会导致indicator和title对不上,整个ViewPager没有回弹过程,导致以上bug。这个问题用方法二即可解决。