使用场景一般是一个单选标签卡加ViewPager结构,例如下图标签卡控制ViewPager切换。

以下方式可以容易实现下划线,上划线,甚至更复杂的效果,看懂了逻辑,什么效果基本都没问题。

一、界面布局,就是一个简单的RadioGroup,内部包含两个RadioButton:

<RadioGroupandroid:id="@+id/rg_title"android:layout_width="wrap_content"android:layout_height="match_parent"android:orientation="horizontal"><RadioButtonandroid:id="@+id/rb_title_select"android:layout_width="wrap_content"android:layout_height="match_parent"android:paddingStart="20dp"android:paddingEnd="20dp"android:button="@null"android:gravity="center"android:textColor="@drawable/btn_title_text_selector"android:text="选课"android:background="@drawable/btn_title_bg_selector" /><RadioButtonandroid:layout_width="wrap_content"android:layout_height="match_parent"android:paddingStart="20dp"android:paddingEnd="20dp"android:button="@null"android:gravity="center"android:textColor="@drawable/btn_title_text_selector"android:text="我的"android:background="@drawable/btn_title_bg_selector"/></RadioGroup>

二、其中background的selector代码如下,文件名btn_title_bg_selector.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_checked="true"><layer-list><!--底层使用下划线的颜色填充--><item><shape><solid android:color="#fba126"/></shape></item><!--上面覆盖一层距离底层的底部3dp,填充白色。两层叠加一起就形成了一条下划线效果,原理自行脑补--><item android:bottom="3dp"><shape><solid android:color="#ffffff"/></shape></item></layer-list></item><item android:state_pressed="true"><layer-list><item><shape><solid android:color="#797979"/></shape></item><item android:bottom="3dp"><shape><solid android:color="#ffffff"/></shape></item></layer-list></item><itemandroid:drawable="@android:color/transparent"></item></selector>

三、文字颜色的selector,文件btn_title_text_selector.xml如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><itemandroid:state_checked="true" android:color="#fba126"></item><itemandroid:state_pressed="true" android:color="#797979"></item><itemandroid:color="#797979"></item></selector>

四、Activity中代码如下:

RadioGroup radioGroup = (RadioGroup) findViewById(R.id.rg_title);radioGroup.check(R.id.rb_title_select);//默认选中的RadioButtonradioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup group, @IdRes int checkedId) {}});

RadioGroup的默认选择,需要在代码设置,xml设置会一直呈现checked的状态。

文字加下划线单选按钮效果,RadioGroup实现相关推荐

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

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

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

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

  3. 输入文字加下划线_微信昵称这样设置,文字加上下划线!

    Hi 大家好 我是机哥 今天是周末,最近有小伙伴问,微信带线的昵称是怎样设置的,其实很简单,我们先来看一下. 就是在文字的下面加一条下划线,感觉还是挺与众不同的,这个文字大家可以聊天使用,也可以设置微 ...

  4. 输入文字加下划线_Word中被很多职场人士忽略的输入技巧为什么插入的文字会后移...

    当我们在Word文中,有时候需要碰到各类下划线,需要输入姓名等信息时,会发现输入后的内容会跟着往后移动,影响原来的美观.这到底是因为什么原因呢?有什么方法可以解决这类问题吗?今天,office小超老师 ...

  5. css里给文字加下划线代码,css添加文字下划线样式的方法

    css添加文字下划线样式的方法 发布时间:2020-08-31 13:54:27 来源:亿速云 阅读:65 作者:小新 这篇文章将为大家详细讲解有关css添加文字下划线样式的方法,小编觉得挺实用的,因 ...

  6. input框中的文字加下划线

    需求: 要求input框中的文字有下划线 解决: <input type="text" name="mailpassword" value="已 ...

  7. TextView文字加下划线的方法

    1. 最简单的方式就是通过修改TextView的字符串值,即在string里添加关键字<u>: <string name="register_by_phone"& ...

  8. LaTeX技巧004:给文字添加下划线、波浪线等样式

    前言   在Word中可以给文字加下划线.波浪线.加点等处理,在LaTex同样也可以,今天就来说一下. 具体实现 下划线   首先来说一下下划线,因为下划线的处理稍微不一样.   下划线使用的命令是\ ...

  9. LaTeX技巧:给文字添加下划线、波浪线等样式

    原文:http://blog.csdn.net/programchangesworld/article/details/51465154 前言   在Word中可以给文字加下划线.波浪线.加点等处理, ...

  10. html5css字体下划线,如何利用css样式做出文字的下划线?

    如何利用css样式做出文字的下划线? 在将网页设计完成后,接下来就需要前端和后端工程师的配合,来将网页正式上线了.但是身为网页设计师,还是有必要掌握一些前段知识的,主要指html5和css3,在招聘网 ...

最新文章

  1. 如何限制IP,通过SSH登陆linux服务器
  2. C++中虚函数、虚指针和虚表详解
  3. 【C/C++】从技术学习和实际运用的角度来看,C/C++和Java到底区别在哪?C语言、C++学习路线?
  4. Oracle第三课之PLSQL
  5. 算法工程师思维导图—数据结构与算法
  6. 类写了package java命令出错_java/javac命令行如何同时引用多个包;错误 TypeError: 'JavaPackage' object is not callable 的含义...
  7. 掌握Iometer的安装和使用
  8. 影子卫士汉化语言包 res.ini
  9. 机械臂技术参数的意义
  10. 台北故宫博物院收藏:气势开张,米芾行草书法真迹《真酥帖》赏析
  11. 2021年中国计算机视觉产业及其重点企业分析(商汤科技VS旷视科技VS依图科技VS云从科技)[图]
  12. c++ 函数之间 传递向量_将向量传递给C ++中的函数
  13. 1000年---2000年之间的闰年、判断某年是否为闰年
  14. Sun Java System Message Queue - Packet acknowledge failed after failover
  15. 智能手机是不是计算机应用设备,otg数据线是什么 otg数据线有什么用 otg数据线的使用方法...
  16. Java并发编程:Callable、Future和FutureTask
  17. PPT怎么一键导出所有图片
  18. 单元测试、集成测试、系统测试的侧重点
  19. Linux常见问题汇总,比较适合菜鸟哈
  20. 基于MPPT算法的PV光伏阵列电网模型simulink仿真

热门文章

  1. 胶囊网络之 Found a Reason for me? Weakly-supervised Grounded Visual Question Answering using Capsules论文笔记
  2. 【Unity】四叉树/八叉树管理和动态加载场景物件
  3. 喜报!字根科技牵手荣之联,提供错别字检测解决方案
  4. 投影幕尺寸参数对照表
  5. CentOS 7.5 安装Nginx教程
  6. Python wordcloud 如何修改云图字体颜色
  7. C#WPF控件跟随窗口最大化
  8. VFB组件:MonthCalendar控件(月日历)
  9. 【说明书】迪士尼儿童手表说明书
  10. 稻米之缘农耕稻作文化 国稻种芯-万祥军:影响中国历史走向?