TabLayout——浅谈
来源:互联网 发布:sas数据分析大赛题目 编辑:程序博客网 时间:2024/05/19 02:44
TabLayout——浅谈
TabLayout是Google新推出(其实好久了。。。)的一个组件,在android5.0的之后的应用中被广泛应用,最近做的一个项目当中也使用到,所以抽空花点时间,整理总结一番。
TabLayout是什么?
TabLayout是一个用来横向显示Tab组件的布局。用来显示Tab组件非常方便,是Android应用中使用最广泛的布局组件之一。
TabLayout的基本用法
首先引入TabLayout的库,项目是基于android Studio的,所以引入库是十分方便的,在应用的build.gradle文件中加入这一句,其中后面的版本号跟自己的 compileSdkVersion保持一致就好:
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
Java调用代码如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
xml布局举例:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
显示效果(这里是用平板模拟器做演示):
TabLayout与ViewPager结合使用
TabLayout与ViewPager结合使用可以达到点击tab更新ViewPager、滑动ViewPager更新Tab的效果,因此用来做导航页,是十分方便的,使用时需要注意的一个地方如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
从上述代码中可以清楚的看到,我们在调用TabLayout的setupWithViewPager()
方法后需要再次为已添加的Tab赋值,否则之前的tab的value就会消失。(直接拿一个小项目的配图看了)效果如下:
而正确的效果应该如下:
- TabLayout中Tab字体大小修改
修改TabLayout中Tab字体大小需要通过定义Style的方式来完成,然后将值赋给TabLayout,代码如下:
首先定义style:
- 1
- 2
- 3
- 1
- 2
- 3
其次讲style赋给TabLayout,代码如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- TabLayout中Tab背景修改
修改背景的方法比较简单,直接使用如下代码,:
- 1
- 1
如果不需要变换颜色,可以直接使用一种颜色, 但是通常我们会分为选中和未选中两种状态为不同的颜色,因此需要使用state-select文件来做,样例代码如下:
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
需要注意的是,写select文件,要把normal-state放在最后。
以上就是我对TabLayout的一些基本认识以及在实际项目当中遇到的一些问题,分享与此,与君共勉!
来源于http://blog.csdn.net/wenwen091100304/article/details/52424402?utm_source=tuicool&utm_medium=referral
- TabLayout——浅谈
- TabLayout——浅谈
- 浅谈TabLayout(ViewPager+Tab联动)
- 浅谈design的tablayout基本使用
- Android——TabLayout实现选项卡
- Material Design —— TabLayout学习笔记
- 个人笔记—TabLayout使用详解
- TabLayout
- tablayout
- Tablayout
- TabLayout
- TabLayout
- TabLayout
- TabLayout
- TabLayout
- TabLayout
- TabLayout
- tablayout
- SQL中使用where 1=1 和 select * 的坏处
- 让测试/开发/生产环境相分离
- 无言
- react-router 学习笔记之Link带参数传值
- jq 多个《button》 点击事件(含 ajax ,action), 功能版
- TabLayout——浅谈
- mysql 数据库迁移
- 生成对抗网络(GAN)的前沿进展(论文、报告、框架和Github资源)汇总
- 区间更新 区间和查询 带有延迟标记 线段树 hdu1698; 附:csa 区间加值,维护最大值
- 程序员学习网址 (持续更新)
- pomelo源码解析之组件Remote
- jdk源码学习笔记---Integer
- java基础:关于String类
- 克隆