TabLayout您可能不知道的实用用法

1、修改点击的动画

函数:setUnboundedRipple
这是默认的点击的动画

咱们用代码修改一下:git

mGlueTabLayout.setUnboundedRipple(true);

这是以后的效果:
github

2、设置下划线指示器的宽度不要填充完(动态的根据TabView的宽度来设置自身的宽度)

函数:setTabIndicatorFullWidth
这是默认的效果

咱们用代码修改一下:函数

mGlueTabLayout.setTabIndicatorFullWidth(false);

这是以后的效果:
动画

3、设置下划线指示器的样式

函数:setSelectedTabIndicator
这是默认的效果

咱们用代码改变:spa

GradientDrawable gradientDrawable = new GradientDrawable();
gradientDrawable.setCornerRadius(dp2px(2));
mGlueTabLayout.setSelectedTabIndicator(gradientDrawable);

我改变了其的直角,变为了圆角,看效果吧:

您也能够在res/drawable文件夹下写个xml文件传入setSelectedTabIndicator(@DrawableRes int tabSelectedIndicatorResourceId),效果是同样的。3d

这个您也许也须要

粘动动画.gif
这个动画很好看,我也在一些应用上看到它的影子,好比微博。code

因此,我写了GlueTabLayout简单扩展了TabLayout,添加了这个动画,GlueTabLayout本质就是TabLayout,一点未变,您怎么用TabLayout,就能够怎么使用GlueTabLayout,是否是很友好,哈哈。
我还添加了一个TabLayout没有提供的方法,我添加了精确设置下划线指示器宽度的方法。xml

我把它开源了,用以方便有须要的人,更详细的内容移步 GitHubblog

以上 :)ip