1、固定下划线

上图上图!!!找了蛮久的才做好,呜呜!!

TabLayout布局初始化

<android.support.design.widget.TabLayoutandroid:id="@+id/tb_home"app:tabSelectedTextColor="@color/g333333"app:tabTextColor="@color/g999999"<!-- tabIndicatorHeight="0dp" 把原有的线隐藏掉-->app:tabIndicatorHeight="0dp"<!--设置选中样式-->app:tabBackground="@drawable/tab_select"android:background="@color/white"android:layout_width="match_parent"android:layout_height="wrap_content"></android.support.design.widget.TabLayout>

tab_select初始化

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:drawable="@drawable/tab_selected" android:state_selected="true" /><item android:drawable="@color/white" />
</selector>

tab_selected初始化

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"><!-- 整个背景色--><item><shape><solid android:color="@color/white" /></shape></item><!-- 底部圆角,参数是固定的 --><itemandroid:width="24dp"android:height="2dp"android:gravity="bottom|center_horizontal"><shape><solid android:color="@color/gffc105" /><corners android:radius="1dp" /></shape></item>
</layer-list>

2、根据文字显示自适应下划线

/*** 通过反射机制 修改TableLayout 的下划线长度*/public void reflexWith(final TabLayout tabLayout) {//了解源码得知 线的宽度是根据 tabView的宽度来设置的tabLayout.post(new Runnable() {@Overridepublic void run() {try {//拿到tabLayout的mTabStrip属性LinearLayout mTabStrip = (LinearLayout) tabLayout.getChildAt(0);int dp10 = DensityUtil.dip2px(context, 20);// dip2px(tabLayout.getContext(), 10);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左右间距为10dp  注意这里不能使用Padding 因为源码中线的宽度是根据 tabView的宽度来设置的LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) tabView.getLayoutParams();params.width = width;//宽度可调width-25params.leftMargin = dp10;params.rightMargin = dp10;tabView.setLayoutParams(params);tabView.invalidate();}} catch (NoSuchFieldException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();}}});}

tablayou设置固定下划线和根据文字显示长短显示下划线相关推荐

  1. HTML怎么像是下划线、穿越文字的横线以及上划线

    这些下划线,上划线等样式都属于HTML物理字体(Physical Style) <b>今天天气真好!</b> 今天天气真好! <i>今天天气真好!</i> ...

  2. html图片环绕文字,CSS_如何让文字环绕图片显示?

    总得来说,文字环绕图片显示的实现方式有这样两种: 通过img的 align 属性, 设置img的停靠位置,文字会环绕显示: 给img单独加一个父级div容器,设置css属性:float:left ; ...

  3. html 文字显示图片左侧,CSS_如何让文字环绕图片显示?

    总得来说,文字环绕图片显示的实现方式有这样两种: 通过img的 align 属性, 设置img的停靠位置,文字会环绕显示: 给img单独加一个父级div容器,设置css属性:float:left ; ...

  4. HTML怎么设置下划线?html文字加下划线方法

    HTML中的下划线曾经是将文本包含在<u></u>标签中的问题,但是这种方法已被放弃,而更倾向于使用更多功能的CSS.一般来说,下划线被认为是引起人们对文本注意的一种方式,那么 ...

  5. mac Word中设置下划线之后文字后面不显示的问题解决

    mac Word中设置下划线之后文字后面不显示的问题解决 这里也是找了很久解决方法发现大多数都是直接能够找到设置啥啥啥,但是 mac 我在操作的时候一直没找到方法. 这里突然发现就是有一个解决的小方式 ...

  6. 怎么html文字下划线,HTML怎么设置下划线?html文字加下划线方法

    HTML中的下划线曾经是将文本包含在标签中的问题,但是这种方法已被放弃,而更倾向于使用更多功能的CSS.一般来说,下划线被认为是引起人们对文本注意的一种方式,那么HTML怎么设置下划线?html文字加 ...

  7. WPF编程,TextBlock中的文字修饰线(上划线,中划线,基线与下划线)的使用方法。...

    WPF编程,TextBlock中的文字修饰线(上划线,中划线,基线与下划线)的使用方法. 原文:WPF编程,TextBlock中的文字修饰线(上划线,中划线,基线与下划线)的使用方法. 版权声明:我不 ...

  8. html两条下划线重叠,文字和text-decoration:underline下划线重叠问题

    一.text-decoration:underline下划线的问题 CSS text-decoration:underline可以给内联文本增加下划线,但是,如果对细节要求较高,就会发现,下划线经常会 ...

  9. jsp中去掉超链接下划线吗_好烦啊,PPT 插入超链接,文字自动变色还有下划线!还不能改?!...

    「老师,PPT 中插入超链接,为什么设置之后文字不仅改变了颜色,还多了一条下划线,但是选中后更改没有反应--有没有办法让文字看着正常一点?」 效果类似这样: 这是在给秋叶PPT的学员进行答疑的时候,遇 ...

  10. WPS添加下划线,文字尾部不显示下划线问题解决(一个So stupid问题)

    记录一个傻瓜操作,嗯,更想删WPS了. 一.问题如下 首先如图: 选择wps中的下划线操作 理想中他应该是这样的: 选中的内容应该在下划线中间,是吧,默认正常操作就应该这样. 实际上它出来的效果是这样 ...

最新文章

  1. C++之指向对象成员函数的指针
  2. 浏览器发送http请求过程分析
  3. BZOJ-2038-小Z的袜子hose-莫队
  4. mac 不能连接wi-fi_如何在Mac OS X中查看当前的Wi-Fi连接速度
  5. 如何在data visualization 中update svg_如何操作小程序页面中data数据区中的数据
  6. MySQL数据库操作步骤---增删改查
  7. PyTorch 深度学习:32分钟快速入门——ResNet
  8. java invokelater 以及invokeandwait
  9. Angular学习笔记(五) - 自定义表单控件
  10. NRF52832学习笔记
  11. 小说阅读网站设计HTML,HTML5+CSS3网站设计基础教程
  12. Jeshoots - 类别齐全的高质量免费商业摄影图库
  13. 一公司的产品策划职位要求
  14. 拼多多超越阿里淘宝,黄峥辞任董事长;蚂蚁集团CEO宣布辞职,上市陷入迷途?...
  15. matlab析取范式求主析取范式用电脑,(p∧q)∨r 求其主析取范式 再用主析取范式求主合取范式...
  16. 肠道菌群与睡眠的双向桥接
  17. 神经网络中单层神经元表示逻辑运算
  18. 第十九章:如何组建团队
  19. web实现html页面思维导图效果
  20. linux下制作win7安装U盘

热门文章

  1. 计算机显示器黑屏首先检查,电脑显示器黑屏怎么回事?教你处理方案
  2. 六爻金钱卦 手工摇卦方法
  3. SuperMap iClient3D for WebGL教程 水面特效制作
  4. Mysql 事务锁等待时间超时
  5. curiosity_mars_rover调试
  6. Console口和Telnet远程登陆
  7. mysql dual表用法_详解Oracle数据库中DUAL表的使用
  8. Intel CPU(i3、i5、i7、i9)型号、性能详细解读
  9. 工业物联网企业logo设计思路分析
  10. 七月份的尾巴是狮子座