Tablayout设置item间距

  • 方法:1
/*** 设置tablayout下划线根据文字宽度而改变* @param tabLayout* @param padding*/public void setTabWidth(final TabLayout tabLayout, final int padding){tabLayout.post(new Runnable() {@Overridepublic void run() {try {//拿到tabLayout的mTabStrip属性LinearLayout mTabStrip = (LinearLayout) tabLayout.getChildAt(0);for (int i = 0; i < mTabStrip.getChildCount(); i++) {View tabView = mTabStrip.getChildAt(i);//拿到tabView的mTextView属性  tab的字数不固定一定用反射取mTextViewField mTextViewField = tabView.getClass().getDeclaredField("mTextView");mTextViewField.setAccessible(true);TextView mTextView = (TextView) mTextViewField.get(tabView);tabView.setPadding(0, 0, 0, 0);//字多宽线就多宽,所以测量mTextView的宽度int width = 0;width = mTextView.getWidth();if (width == 0) {mTextView.measure(0, 0);width = mTextView.getMeasuredWidth();}//设置tab左右间距 注意这里不能使用Padding 因为源码中线的宽度是根据 tabView的宽度来设置的LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) tabView.getLayoutParams();params.width = width ;params.leftMargin = padding;params.rightMargin = padding;tabView.setLayoutParams(params);tabView.invalidate();}} catch (NoSuchFieldException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();}}});}
   setTabWidth(tab, 25);//这个方法要用在 tablayout 和viewPager 绑定之前。tablayout 属性设置 app:tabMode="fixed" 才有效//绑定viewPager  tab.setupWithViewPager(viewPager, false);

补充:如果只是为了宽度和字体宽度一样,tablayout已经加入了新属性

app:tabIndicatorFullWidth=“false”
上面的方法可以设置固定宽度

方法:2
在Android的TabLayout中item的间距是默认的,之前找了很多方法都没有找到调整的方法,如果要修改则可以给TabLayout添加以下两个属性

app:tabMaxWidth=""
app:tabMinWidth="
``
添加完这两个属性后item之间默认的间距就会消失,这个时候就可以自己给item设置间距了,还是在TabLayout中添加以下属性
app:tabPaddingStart=""
app:tabPaddingEnd=""

这样就可以实现对TabItem的间距修改了
另一个参考文章很好记录一下:

TabLayout设置Tab间距_休以希的博客-CSDN博客_tablayout 间距

————————————————
版权声明:本文为CSDN博主「偶然一眼看到你」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37142785/article/details/110550184

Tablayout设置间距相关推荐

  1. php表格之间设置间隔,html表格如何设置间距

    html表格设置间距的方法:1.设置第一个tbale的[margin-bottom]属性,代码为[ 本教程操作环境:windows7系统.html5版,DELL G3电脑,该方法适用于所有品牌电脑. ...

  2. UICollectionViewCell的设置间距

    UICollectionViewCell的设置间距 #pragma mark - UICollectionView 大小(宽高,平均一行三个) - (CGSize)collectionView:(UI ...

  3. 18-CSS问题-让多个div横排显示并设置间距解决方案

    18-CSS问题-让多个div横排显示并设置间距解决方案 参考文章: (1)18-CSS问题-让多个div横排显示并设置间距解决方案 (2)https://www.cnblogs.com/Romant ...

  4. ViewPager(六)让ViewPager用起来更顺滑——设置间距与添加转场动画

    用法概述: 1.换页监听与换页方法 2.懒加载及预加载定制 3.设置间距与添加转场动画 4.轮播.禁止滑动与指示器的配合 这篇和下一篇都是偏向技巧的东西,对于前端开发者来讲,开发的应用是直接面对用户的 ...

  5. Android TabLayout设置选中状态标题字体大小,粗细

    最全Tablayout详解https://blog.csdn.net/yechaoa/article/details/122270969 -------------------布局文件-------- ...

  6. html怎么修改表格行列间距,html表格如何设置间距

    html表格设置间距的方法:1.设置第一个tbale的[margin-bottom]属性,代码为[ 本教程操作环境:windows7系统.html5版,DELL G3电脑,该方法适用于所有品牌电脑. ...

  7. html如何设置字段间距,html表格如何设置间距

    html表格设置间距的方法:1.设置第一个tbale的[margin-bottom]属性,代码为[ 本教程操作环境:windows7系统.html5版,DELL G3电脑,该方法适用于所有品牌电脑. ...

  8. android网格布局间隙,RecyclerView网格布局瀑布流布局设置间距

    RecyclerView在网格布局或者瀑布流布局下,如果要设置间距,可以使用ItemDecoration. 下面的代码是设置显示两列数据RecyclerView的情况. cat.png @Overri ...

  9. TabLayout设置图标和字体

    tablayout设置图标时不显示:可以通过自定义布局来添加tab private void initView() {//设置图标数组icon = new int[]{R.mipmap.home, R ...

最新文章

  1. dorado学习笔记(二)
  2. React SPA学习(一)
  3. OO第一单元总结博客
  4. InnoDB 存储引擎体系架构
  5. memcache mysql 同步_memcache与mysql数据库同步
  6. linux脚本变量运算符,linux——Shell 脚本基础篇(变量类型,变量操作,定义,运算与逻辑关系)...
  7. Windows Linux Mac 路由添加删除
  8. C++ 默认构造函数的构建
  9. ARMv8-A Exception Levels
  10. Linux学习日记之初始用户管理
  11. 链行动之精选案例——区块链解决四大痛点 福费廷结合案例逐步落地
  12. 抖音书单号如何快速上热门
  13. cookies、sessions、token区别
  14. hpm1005能扫描不能打印_小米米家喷墨打印一体机体验:500元以内学生和职场人的实惠选择...
  15. 【CLAPACK函数库】CLAPACK安装与使用,编译好了出现f2c_dgemm,dgesvd_错误主要是camkelist, gcc编译库的顺序要对
  16. 《比尔总动员》服务器开启时间总览
  17. 公众号开发精品教程(1)——绪论及环境搭建
  18. Material icons 全图标一览
  19. XMOS开发环境安装
  20. 电脑图片怎么识别成表格并导出?一键识别有方法

热门文章

  1. Oracle入门学习详解
  2. iOS使用GCDSocketManager实现长连接
  3. 一篇文章带你认识芯片分类及代表企业
  4. Jabber 技 术 概 况
  5. UVa10635 - Prince and Princess
  6. 怎么借书(分配资源问题)(SWUST OJ1287)
  7. win10服务器权限修改时间,大师为你解答win10系统时间无法修改没有权限的处理方案...
  8. 日内短线亏钱最大原因是什么?
  9. 【全栈软件测试】一、测试环境和操作系统(3)VMware的安装及使用与虚拟机的创建与使用详细介绍
  10. Iec61850 部署调试笔记一