美文网首页
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