Tablayout之Tab背景显示
前段时间做一个项目使用到了Tablayout,可以用来实现类似知乎分栏的效果要使用Tablayout,必须引用Google的Android Support Design库,使用Android Studio 的同学可以直接使用只要在build.gradle中加入
compile 'com.android.support:design:22.2.0'
即可
遇到的问题
使用中,我需要设置Tab的点击效果,所以我新建了一个selector,并将每一个tab的界面背景设置为该selector
itemTab.setCustomView(R.layout.item_tab_layout_custom);
itemTab.getCustomView().setBackgroundResource(R.drawable.selector_tab);
TextView itemTv = (TextView) itemTab.getCustomView().findViewById(R.id
.tv_menu_item);
itemTv.setText(tabIndicators.get(i));
但是效果并不理想,tab左右两边的背景无法全部填充,左右有很大的空隙严重影响美观,如下图
解决办法
百度了两天后,还是没有解决该问题,直到第三天,我的科学上网工具又好了- -感动到晕厥(事实证明,程序员真的不适合用百度,生活服务还好)
我google到了下面一篇文章,其中讲到了:
如果你设置了TabMode为MODE_FIXED然后发现文本并没有包围全局,或许是因为Tablayout在创建时应用了一些嵌入设置,你可以将下面的代码写入xml以解决此问题:
app:tabPaddingStart="-1dp"
app:tabPaddingEnd="-1dp"
效果如下:
代码加入前:
代码加入后:
由此可见,问题完美解决
总结
经过了这一次的问题,越发觉得程序员学会科学上网是多么重要,也增加了自己查询解决问题的能力,Tablayout作为谷歌推出的遵循MD的控件,应该多加学习利用。
自己新建的个人博客,至今还有很多的问题,如果谁有兴趣希望跟我联系,共同进步,共同学习,望不吝提出意见与指导,万分感谢!