第一步是要让 TabLayout 和 ViewPager 关联起来
这样 ViewPager 滑的时候,TabLayout 也跟着滑。mTabLayout.setupWithViewPager(mViewPager);
第二步是让 TabLayout 可以被人滑动
第一步后 TabLayout 虽然可以跟着 ViewPager 滑动,但是人去滑它是滑不动的,得这样:mTabLayout.setTabMode(TabLayout.MODE_SCROLLABLE); // 还有 TabLayout.MODE_FIXED
但是,当 TabLayout 的 item 比较少时,这样设置不仅让其可滑动,还会改变布局,就是几个 item 的宽度都严重缩小,并堆到左侧去,就像 CSS 中的 float:left 一样。
真的是,搞什么搞。
第三步写一个 Adapter
继承自 PagerAdapter,然后 ViewPager 用之。Adapter 倒不复杂,完善其继承的方法即可,跟其他的 Adapter 一个道理。只是有一个坑,就是它居然会去改 TabLayout item 的标题,哇塞,想想都刺激,这些创造者到底在搞什么啊。怎么解决?在继承中重写 getPageTitle 方法,返回实际的标题,否则它会用空来为 TabLayout item 设置标题。@Override
public CharSequence getPageTitle(int position) {
}