这里推荐一下自己写的 TabLayout 框架,
GitHub地址:github.com/ytempest/Va…
体验包:github.com/ytempest/Va…
VarietyTabLayout
一个可扩展的 TabLayout,目前支持:
- 自定义
Tab样式,但是最外层的ViewGroup暂不支持Margin属性 - 自定义
Indicator样式
同时VarietyTabLayout内置了几种简单的Tab布局和Indicator样式 Tab样式TrackTabDecorator: 文字颜色变化效果ScaleTabDecorator: 文字缩放效果
Indicator样式FixedIndicator: 固定长度指示器DynamicIndicator: 动态框NylonIndicator: 尼龙绳效果指示器
具体效果clone代码查看或者下载 sample.apk 体验一下
依赖配置
VarietyTabLayout 的使用依赖 ViewPager ,所以也需要加上 ViewPager 的依赖
implementation 'com.ytempest:varietytablayout:1.1'
简单使用
在布局中添加 VarietyTabLayout 后,关联 ViewPager 后设置相应的 Adapter
mVarietyTabLayout.setupWithViewPager(mViewPager);
List<String> items = getItems();
mViewPager.setAdapter(new Adapter(items))
mVarietyTabLayout.setAdapter(new SimpleAdapter(items))
扩展——自定义样式
-
自定义
Tab样式,可参考内置的 ``ScaleTabDecorator,通过实现ITabDecorator接口实现Tab` 的处理逻辑:-
创建
Tab布局 -
将关联的
<Data>类型的数据绑定到Tab布局中 -
根据百分比为当前
Tab实现释放动画 -
根据百分比为下一个
Tab实现选中动画
-
-
自定义
Indiator样式,可参考内置的FixedIndicator,通过实现IIndicatorDecorator接口实现Indicator的逻辑- 设置
Indicator在布局的位置 - 创建
Indicator - 计算
Indicator的偏移位置
- 设置
最后通过 BaseAdapter 选择自定义的样式
更新记录
v1.1
- 支持通过
Adapter添加、更新和删除Tab - 修正长距离跳转
Tab位置时TabUI状态更新异常
v1.0
- 支持自定义
Tab和Indicator样式 - 内置 2 种
Tab样式、3 种Indicator样式
预览图
这里为内置的 Tab 和 Indicator 样式