TabLayout自定义指示器及样式
一,自定义指示器下标
效果图如下:
1,新建一个名为:layer_tab_indicator的layer-list文件,然后定义想要的样式,其中bitmap 设置成需要的图片格式,也可以根据需求在item标签内添加绘制所需要的下标
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"><itemandroid: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!!.texttab.customView = textView
}
因TaLayout已经预留了一个customView根据自己的需求进行扩展,通过如上的onTabSelected和onTabUnselected进行自定义选中和未选中的样式
TabLayout自定义指示器及样式相关推荐
- TabLayout的指示器和文字的边距
文章目录 一.前言 二.依赖配置 三.TabLayout的简单使用 四.自定义Tab内容 五.修改指示器离文本的距离 六.修改指示器的宽度 七.复杂的指示器效果 八.参考链接 一.前言 本文主要用于介 ...
- 安卓Tablayout自定义文字、指示器长度和颜色
安卓Tablayout自定义文字.指示器长度和颜色 废话不多说,先上效果图.没有效果图的文章都是扯淡: 安卓Tablayout自定义文字.指示器长度和颜色 新的改变 以上就是所有的代码 附上demo源 ...
- 二、TabLayout自定义图片指示器
最近项目需求,多个tab切换显示不同的页面,但是tab的下划线是一个带有圆角阴影的下划线,看过Tablayout源码的小伙伴可能会知道,通过原生的TabLayout是无法实现的,想了解的可以看我的另一 ...
- android tablayout 自定义,TabLayout用法详解及自定义样式
TabLayout的默认样式: app:theme="@style/Widget.Design.TabLayout" 从系统定义的该样式继续深入: fill fixed 264dp ...
- Android TabLayout修改指示器宽度方案汇总
目录 前言 TabLayout的视图结构 TabLayout绘制指示器的过程 1.从获取tabSelectedIndicator边界着手 1.1 默认情况下的指示器宽度 1.2 tabIndicato ...
- TabLayout自定义总结
文章目录 1.常用属性 2.文字选中加粗 3.自定义指示器样式 4.自定义Tab样式 5.动态修改Tab的标题 5.1.使用的是原生的Tab: 5.2.修改自定义Tab的标题-1: 5.3.修改自定义 ...
- YY项目之TabLayout自定义Tab的title
2019独角兽企业重金招聘Python工程师标准>>> 首先介绍一下Tablayout和ViewPager配合的基本用法 布局文件: <?xml version="1 ...
- android ratingbar样式,自定义RatingBar的样式
写星座运势,难免要写RatingBar. 用法: 1.属性 android:numStars : 星星个数 android:rating : 默认点亮的星星星星个数 android:stepSize ...
- Android 自定义指示器NBIndicatorView
通过不间断的公司项目发现,在Android中使用透明指示器的地方很多. 以往自己都是通过继承dialog来实现的透明指示器,当然,为了研究更多东东.这些天特意写出了另外一种实现方式. 其实也没有什么特 ...
最新文章
- pywinauto 连接已经打开的程序 如:微信
- WebService using Spring throwed org.xml.sax.SAXException: Bad envelope tag: htm
- MS SQL专用管理员连接DAC
- 面向对象第七章,内存的管理,面向对象三大特征封装、继承、多态
- 7.串口操作之API篇 GetCommMask SetCommMask WaitCommEvent
- LiveVideoStack Meet成都 生活与技术的“矛盾体”(内附资料下载)
- storm apache java_Apache Ignite与Apache Storm(深入)
- 删除sessionstorage_localStorage 和 sessionStorage 介绍
- 加载中图片 转圈_对话洛可可平面设计师:平面设计中的效率瓶颈
- 软件测试 学习之路 CSS (二)
- MacOS苹果电脑使用PPPOE接入网络办法
- 反超苹果,微软重回全球市值第一!
- 23款网盘全都能变成本地硬盘
- OBS更改标题?标题一改,安能辨我是雌雄?
- 绕过CDN查找真实IP方法
- “bang” in JavaScript
- 内推网创始人黄小亮:拒绝猎头的P2P招聘
- 深度剖析Java常量池
- 推荐一本初学C++的书
- 自动称重管理软件功能如何助力企业实现信息化(一)