android 自定义控件之 RecyclerView 打造万能 ViewPager TabLayout

TabLayoutNiubility

项目地址:AnJiaoDe/TabLayoutNiubility 

简介: Android 自定义控件之 RecyclerView 打造万能 ViewPager TabLayout(仿今日头条 Tab 滑动、Tab 多布局、indicator 蠕动、自定义 indicator、文字颜色渐变、自定义 Fragment)

更多:作者   提 Bug   

标签:

tab-tablayout-recyclerview-导航-

文章目录

GitHub:GitHub - AnJiaoDe/TabLayoutNiubility: Android自定义控件之RecyclerView打造万能ViewPager TabLayout(仿今日头条Tab滑动、Tab多布局、indicator蠕动、自定义indicator、文字颜色渐变、自定义Fragment)

CSDN:Android自定义控件之RecyclerView打造万能ViewPager TabLayout(仿今日头条Tab滑动、Tab多布局、indicator蠕动、自定义indicator、文字颜色渐变)_安娇德的博客-CSDN博客

该轮子特异功能如下:

使用方法

注意:该轮子适用于 androidx 中的 ViewPager2 和 ViewPager

注意:如果轮子死活下载不下来,说明 maven 地址有毛病,你需要找到 jitpack 的官网首页,查看最新的官网地址

注意:记得去 gayhub 查看最新版本,最新版本最 niubility

详细使用如下

Tab 均分不滑动(ViewPager、ViewPager2 均支持)

Tab 滑动、 indicator 蠕动、多布局(ViewPager、ViewPager2 均支持)

根据 item 个数动态设置 Tab 均分还是滑动

Tab 文字颜色渐变(ViewPager、ViewPager2 均支持)

自定义 Indicator 如三角形(ViewPager、ViewPager2 均支持)

ViewPager 双层嵌套(建议不要使用 ViewPager2 进行双层嵌套,ViewPager2 嵌套滑动冲突几乎无法处理,贼鸡儿坑)

仿微信主页 Tab

千古 BUG:Activity 销毁重启,Fragment 恢复问题

AndroidX ViewPager 中的 FragmentStatePagerAdapter 存在的问题

AndroidX ViewPager2 中的 FragmentStateAdapter 存在的问题

自定义 fragment

自定义 Fragment PageContainer 双层嵌套(ViewPager 和 ViewPager2 均适用)

相关 API

TabMediator

FragmentPageAdapter

TabAdapter

TabLayoutScroll、TabLayoutNoScroll、TabLayoutMulti、IndicatorLineView 、 IndicatorTriangleView

TabLayoutScroll 和 indicator style 设置

自定义 indicator

实现原理剖析

说真的,这自定义控件还真不简单

涉及到的难点场景

搞清楚 ViewPager 监听的 onPageSelected、onPageScrolled 和 onPageScrollStateChanged 回调执行特点

自定义 HorizontalRecyclerView 实现 TabLayout

源码如下

TabLayout 的 item 宽度均分

RecyclerView 的 item 刷新如何做到不闪烁

UML 类图如下

面向接口编程(面向多态编程)的思想

欢迎联系、指正、批评

CSDN:https://blog.csdn.net/confusing_awakening/article/details/107635695

该轮子特异功能如下:

Tab 均分不滑动(ViewPager、ViewPager2 均支持)

Tab 滑动、 indicator 蠕动、多布局(ViewPager、ViewPager2 均支持)

根据 item 个数动态设置 Tab 均分还是滑动

Tab 文字颜色渐变(ViewPager、ViewPager2 均支持)

自定义 Indicator 如三角形(ViewPager、ViewPager2 均支持)

ViewPager 双层嵌套(建议不要使用 ViewPager2 进行双层嵌套,ViewPager2 嵌套滑动冲突几乎无法处理,贼鸡儿坑)

仿微信主页 Tab

自定义 fragment

使用方法

注意:该轮子适用于 androidx 中的 ViewPager2 和 ViewPager

1.工程目录下的build.gradle中添加代码:

注意:如果轮子死活下载不下来,说明 maven 地址有毛病,你需要找到 jitpack 的官网首页,查看最新的官网地址

allprojects {
        repositories {
                    maven { url 'https://www.jitpack.io' }
        }
    }

2.直接在需要使用的模块的build.gradle中添加代码:

dependencies {
api 'com.github.AnJiaoDe:TabLayoutNiubility:V1.2.8'
}

注意:记得去 gayhub 查看最新版本,最新版本最 niubility

3.如果你想使用ViewPager2,那么添加代码:

api 'androidx.viewpager2:viewpager2:1.0.0'//版本必须>=1.0.0

4.混淆已配置到库内部,无需做混淆配置

详细使用如下

Tab 均分不滑动(ViewPager、ViewPager2 均支持)

android 自定义控件之 RecyclerView 打造万能 ViewPager TabLayout_第1张图片 activity 布局:

你可能感兴趣的:(Android,不错文章转载,android)