TabLayout自定义指示器及样式
程序员文章站
2022-03-12 21:49:38
一,自定义指示器下标1,新建一个名为:layer_tab_indicator的layer-list文件,然后定义想要的样式,其中bitmap 设置成需要的图片格式,也可以根据需求在item标签内添加绘制所需要的下标 -
一,自定义指示器下标
效果图如下:
1,新建一个名为:layer_tab_indicator的layer-list文件,然后定义想要的样式,其中bitmap 设置成需要的图片格式,也可以根据需求在item标签内添加绘制所需要的下标
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:width="23dp"
android:height="6dp"
android:gravity="center">
<bitmap android:src="@drawable/tab_bottom_tag"/>
</item>
</layer-list>
2,给TabLayout添加自定义的layer-list
app:tabIndicator="@drawable/layer_tab_indicator"
通过如上两步即可完成自定义TabLayout的指示器样式,如果更加复杂的,可参考其他的进行自定义,使用如上方法即可满足大部分的需求
二,自定义Tab样式
1,给TabLayout添加选中的监听
private fun getTabSelectedListener() = object : TabLayout.OnTabSelectedListener {
override fun onTabSelected(tab: TabLayout.Tab?) {
//Tab选中的样式
setTab(tab)
}
override fun onTabUnselected(tab: TabLayout.Tab?) {
//非选中时的样式
tab?.customView = null
}
override fun onTabReselected(p0: TabLayout.Tab?) {
}
}
2,自定义选中的Tab样式
fun setTab(tab: TabLayout.Tab?) {
val textView = TextView(activity)
//字体样式
val selectedSize = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, 20f, resources.displayMetrics)
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, selectedSize)
textView.typeface = Typeface.defaultFromStyle(Typeface.BOLD) //加粗
textView.gravity = Gravity.CENTER
//选中的字体颜色
textView.setTextColor(ContextCompat.getColor(activity!!, R.color.main_color))
textView.text = tab!!.text
tab.customView = textView
}
因TaLayout已经预留了一个customView根据自己的需求进行扩展,通过如上的onTabSelected和onTabUnselected进行自定义选中和未选中的样式
本文地址:https://blog.csdn.net/zdc9023/article/details/110562007
上一篇: 哈哈,没啥好说的,全是好笑的!
推荐阅读
-
destoon调用自定义模板及样式的公告栏
-
TabLayout自定义指示器及样式
-
vue封装element组件库中的封装通用table,是否启用多选、按钮及是否分页,样式可自定义设置
-
移动端 input type=‘file‘ 自定义样式、多图表单上传 及 踩坑 大总结
-
Android自定义Tablayout下划线指示器Indicator:设置宽高、圆角、渐变颜色
-
destoon调用自定义模板及样式的公告栏_PHP
-
destoon调用自定义模板及样式的公告栏_php实例
-
destoon调用自定义模板及样式的公告栏_PHP教程
-
destoon调用自定义模板及样式的公告栏
-
移动端 input type=‘file‘ 自定义样式、多图表单上传 及 踩坑 大总结