美文网首页Android开发Android知识Android知识点和文章分享
修改系统TabLayout(下划线宽度,底部分割线,竖直分割线等

修改系统TabLayout(下划线宽度,底部分割线,竖直分割线等

作者: Ks_y | 来源:发表于2017-10-18 20:30 被阅读6746次

    第一步:(类的提取)

    首先打开系统TabLayout源码,查看所在的包

    TabLayout类

    将TabLayout类复制到自己所建的包中,这时类中所引用的类因为是包权限关系会找不到

    比如:

    1:ThemeUtils

    ThemeUtils类

    2:TabItem

    TabItem类

    3:AnimationUtils

    AnimationUtils类

    以上三个类如下图

    系统类所在位置

    找到系统TabLayout所在的包,将以上三个类提取出来 ,将TabLayout中所引用到的类改为提取出来的类,完成以上操作之后,可以像普通的自定义view一样使用自定义的TabLayout了。

    第二步:(类文件整合)

    将提取出来的类进行整合

    1:AnimationUtils 中只有一个计算方法用到了 可删除此类 ,将方法与变量整合到TabLayout中

    AnimationUtils类

    2:ThemeUtils 中只是进行了一个主题检验,也可整合到TabLayout中

    ThemeUtils类

    3:TabItem 此类是一个自定义的view需要在布局文件中用到,固不改变

    TabItem类

    第三步:(自定义属性)

    1: TabItem属性可自定义也可使用系统定义的。

    2:TabLayout 先保留系统的属性(将系统定义的属性复制出来),也可添加自定义属性

    此图为系统属性

    系统属性

    此图为添加了自定义属性之后

    自定义属性

    第四步(自定义属性的实现)

    实现原则:保留系统TabLayout的特性,在此基础上进行扩展

    实现代码:仅贴出部分代码(以下代码都比较简单都可根据需要自行更改)

    构造方法的部分 属性的解析 属性的实现

    第五步(效果呈现)

    效果图

    补充说明:下图可以看到 tabLayout.setupWithViewPager(viewPager);时移除了所有的Tabs

    补充

    以上内容如有不对,请指出,谢谢!

    相关文章

      网友评论

        本文标题:修改系统TabLayout(下划线宽度,底部分割线,竖直分割线等

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