美文网首页
TabLayout的学习

TabLayout的学习

作者: 小孩游神 | 来源:发表于2016-05-08 16:53 被阅读0次

首先,本文主要就是在使用TabLayout与ViewPager完成Tab导航,进一步学习下TabLayout。

一、TabLayout的关键API

1.setupWithViewpager(ViewPager viewPager)

该方法完成了TabLayout与ViewPager的关联,该方法的源码也是非常清晰易读(如下)。

setupWithViewPager方法源码

该方法主要做了几件事:

(1)获取ViewPager的adapter,该adapter可以设置与ViewPager同步的tab标题。

(2)利用ViewPager的回调接口,采用的是TabLayoutOnPageChangeListener,处理当viewpager滑动改变时,TabLayout中的tab也与之同步改变,

(3)TabLayout的回调接口,这个回调接口中一个重要的参数就是viewpager,这样当滑动选择或点击选中tab时,ViewPager也能同步对应变化。

(4)根据当前的viewpager选中项,来设置TabLayout的当前选中tab。

二、TabLayout的内部类:Tab、TabView、SlidingTabStrip

1、Tab类是对Tab最基础的抽象,最基础的当然是设置Tab的标题,也支持设置Tab的图标(setIcon方法)。

2、TabView类是对Tab类进行一个二次封装。

3、SlidingTabStrip类主要处理指示线的,即Tab的下划线(随着Tab的滑动而滑动)。

三、TabLayout的Tab滚动

1、从源码中看到主要就是在animateToTab(int newPosition)方法中完成的。

Tab的滚动主要就是通过ValueAnimatorCompat(属性动画,做了兼容处理),通过属性动画改变x轴的值,然后通过scrollTo方法实现滚动(TabLayout继承自HorizontalScrollView)。

最后,文章写得还是很简单,自己要坚持写,争取写得更好。

相关文章

网友评论

      本文标题:TabLayout的学习

      本文链接:https://www.haomeiwen.com/subject/nopsrttx.html