首先,我们来看一个原生的TabLayout,如图:
可以看到,tab的宽度是默认平分整个tablayout的宽度,这是已经知道tablayout的宽度的时候的样子,如果不知道tablayout的宽度,比如将tablayout的宽度改成wrap_content会怎样?如图:
可以看到tab的宽度变成被文字撑开了,但是这只是在文字内容较少的情况下是这样的,于是我们决定增加一些文字的长度,如图:
我们可以看到,由于文字长度的增加导致文字换行,而有些时候我们并不希望文字换行,如图:
对于这种情况我们就需要让tab里面的文字不换行,我看了网上很多的解决方法,最后发现一个属性可以完美解决:app:tabMode="auto",如图:
发现问题确实解决了,但是却带来了新的问题,通过对比第一个原生的tab我们发现,同样是两个字的推荐却出现了原生的短,而这个长的问题,因此我们希望能够设置他们的宽度使其保持一致,同样的需求在下面的情况下也会产生,如图:
我们发现,两个字的tab和四个字的tab的宽度一致,这样很难看,我们更希望能够两个字的就两个字的宽度,四个字的就四个字的宽度,我也看了网上的解决办法,就是设置tab的宽度,但是大多很麻烦,涉及到代码还有什么反射啥的,新人们看到都头疼,今天10秒解君愁,只要在之前的tabMode="auto"的基础之上加一个app:tabMinWidth="0dp"的属性就行了,注意不要加成android:minWidth="0dp",这个属性和上面个容易混淆。如图:
我们可以看到,此时两个字的tab的宽度就是两个字的宽度,四个字的也是四个字的宽度了。同理对于上面第三个,标签数量超出的tab也适用,如图:
如果想显示超出的部分,可以将tabMode="auto"改成tabMode="scrollable",效果是一样的,如图:
好了,今天的分享到此结束了,自己遇到的问题分享出来希望能帮到其他人,也当做一个笔记啦!