先来看一下效果图:
![](https://imgservice.lost520.cn/InternetImgService/2020-05-06/20200506212141784.gif)
其实核心功能就两个:
1、选中后改变字体颜色及加上下标
2、事件回调
实现思路:
1、通过向RadioGroup中添加RadioButton实现Tab的填充
2、通过设置设置特定属性去除选择按钮效果
3、通过使用Selector控制RadioButton的字体及下标
具体实现
准备下标的drawable:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:height="3dp"
android:top="40dp">
<shape>
<solid android:color="@color/colorAccent"></solid>
</shape>
</item>
</layer-list>
效果图:
准备字体颜色切换的Selector:
主要用于字体黑灰之间的切换。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@android:color/black" android:state_checked="true"></item>
<item android:color="@android:color/darker_gray" android:state_checked="false"></item>
</selector>
准备下标切换的Selector:
选中则显示刚才使用layer-list定义的下标Drawable,否则什么都不设置,也就是不显示下标。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/shape_indicator" android:state_checked="true"></item>
</selector>
重写RadioGroup:
核心就在add 方法了,直接通过代码创建RadioButton并加入到当前布局中即可。
public