【Android - MD】之TabLayout的使用
TabLayout是Android 5.0新特性——Material Design中的一个控件,是一个标签页的导航条,常结合ViewPager完成页面导航。
和其他MD控件一样,使用TabLayout之前需要在gradle文件中声明依赖:
compile 'com.android.support:design:25.0.0'
1、TabLayout的属性:
app:tabIndicatorColor:TabLayout下面提示条的颜色
app:tabIndicatorHeight:TabLayout下面提示条的高度
app:tabSelectedTextColor:TabLayout中被选中的Tab的文本颜色
app:tabTextColor:TabLayout中没有被选中的Tab的文本颜色
2、TabLayout和ViewPager结合使用:
TabLayout最常见的用法就是结合ViewPager使用完成页面的导航。使用中需要注意,TabLayout需要先绑定到ViewPager,然后再设置Tab标题,否则会发生Tab标题文本消失的问题。代码如下:
// 将TabLayout和ViewPager进行绑定
tabs.setupWithViewPager(vp);
// TabLayout中Tab的排列方式,FIXED表示平分布局;SCROLLABLE表示线性排列,可滑动
tabs.setTabMode(TabLayout.MODE_FIXED);
// 给TabLayout中的Tab添加文本
for (int i = 0; i < titles.size(); i++) {
tabs.getTabAt(i).setText(titles.get(i));
}
// 为ViewPager添加适配器
vp.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int position) {
return fragments.get(position);
} @Override
public int getCount() {
return fragments.size();
}
});
3、TabLayout添加图标:
如果是主页面上的TabLayout,那么肯定是有图标的。我们以前会使用RadioGroup来实现这一功能,现在有了TabLayout,就可以更加轻松的实现了。实现方法就是为通过setIcon()方法为每个Tab设置Icon即可。例如:上面的代码可以改成:
// 将TabLayout和ViewPager进行绑定
tabs.setupWithViewPager(vp);
// TabLayout中Tab的排列方式,FIXED表示平分布局;SCROLLABLE表示线性排列,可滑动
tabs.setTabMode(TabLayout.MODE_FIXED);
// 给TabLayout中的Tab添加图标和文本
for (int i = 0; i < titles.size(); i++) {
tabs.getTabAt(i).setText(titles.get(i)).setIcon(R.mipmap.ic_launcher);
}
// 为ViewPager添加适配器
vp.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int position) {
return fragments.get(position);
} @Override
public int getCount() {
return fragments.size();
}
});
运行结果如图所示:
以上就是对TabLayout基本用法的介绍,下面贴出码云中的源码,供大家参考。
【Android - MD】之TabLayout的使用的更多相关文章
- Android中使用TabLayout实现Tab
一.需求 activity + fragment实现tab,并可以滑动切换tab. 需要导入compile 'com.android.support:design:25.3.1' 二.layout实现 ...
- android ------ AndroidX的 Tablayout(com.google.android.material.tabs.TabLayout) 的使用
前面呢,有写过TabLayout的博客,最近开发用到了AndroidX来解决前面的问题,不要工具类设置下划线的问题了,来总结一下 Android--------TabLayout实现新闻客户端顶部导航 ...
- 【Android - MD】之CoordinatorLayout的使用
CoordinatorLayout是Android 5.0新特性--Material Design中的一个布局控件,主要用来协调各个子视图之间的工作,也可以用来作为顶部布局.CoordinatorLa ...
- 【Android - MD】之Snackbar的使用
Snackbar 是 Android 5.0 新特性--Material Design 中的一个控件,用来代替 Toast ,Snackbar与Toast的主要区别是:Snackbar可以滑动退出,也 ...
- 【Android - MD】之NavigationView的使用
NavigationView是Android 5.0新特性--Material Design中的一个布局控件,可以结合DrawerLayout使用,让侧滑菜单变得更加美观(可以添加头部布局). Nav ...
- 【Android - MD】之TextInputLayout的使用
TextInputLayout是Android 5.0新特性--Material Design中的一个布局控件,主要用来嵌套EditText,实现数据输入时的一些效果,如: 当输入框获取焦点时,输入提 ...
- 【Android - MD】之FloatingActionButton的使用
FloatingActionButton(FAB) 是 Android 5.0 新特性--Material Design 中的一个控件,是一种悬浮的按钮. FloatingActionButton 是 ...
- android Button、TabLayout英文自动改小写为大写的问题
如果是Button自动大写问题,直接设置Button的 textAllCaps="false" 即可: 如果是TabLayout出现全大写问题,先在style.xml加入属性: & ...
- 【 Android 】ViewPager + TabLayout + Fragment 数据初始化问题
在 ViewPager 和 Fragment 配合使用的时候,ViewPager 会使用预加载机制,使得我们在没有切换到到对应页面时,就已经加载好了,这是个非常不好的用户体验. 所以本示例项目就诞生了 ...
随机推荐
- 一个简单的Hibernate工具类HibernateUtil
HibernateUtil package com.wj.app.util; import org.hibernate.Session; import org.hibernate.SessionFac ...
- StrongReference
原创作品:未经本人允许,不得转载前段时间写项目时遇到了一个问题,就是从网络获取图片资源的问题,总是出现OOM异常,经过几天的努力,终于处理的还算是可以使用,OOM的处理一直都是很头疼的问题.对于三级缓 ...
- opencart 百度登录和百度钱包支付插件 响应式适应pc/mobile
OpenCart(http://www.opencart.com/,http://www.opencartchina.com/)是国外著名的开源电子商务系统, 优势在于前台界面的设计非常适合欧美购物者 ...
- C语言的指针
指针是C语言中非常重要的数据类型,那么什么是指针呢? 指针类型就是用来用来存放变量地址的变量,指向某个变量. 指针的一般形式:*指针变量名 int *p; float *p1; “*”是用来说明这个变 ...
- VS2012编译生成XP可以执行的程序
首先需要的就是下载VS2012的Update 4更新包,然后打开项目的属性页,在 配置属性->平台工具集 选项中选择 Visual Studio 2012 - Windows XP (v110_ ...
- In machine learning, is more data always better than better algorithms?
In machine learning, is more data always better than better algorithms? No. There are times when mor ...
- Book of Evil
Codeforces Round #196 (Div. 2) D:http://codeforces.com/contest/337/status/D 题意:给你一个树,然后树中有一m个点,求到这m个 ...
- RH的NFS配置--简单OK
参照文档: http://wenku.baidu.com/link?url=SAcDvj8WtBd8dunC7P6FTFADYYVzzxhOiNJqbgr-aGTZovM0lHg-wbYgv9I3Lu ...
- HTTP 状态代码
转自:https://support.google.com/webmasters/answer/40132 HTTP 状态代码 如果向您的服务器发出了某项请求要求显示您网站上的某个网页(例如,当用户通 ...
- MyEclipse配置进行Hibernate逆映射
MyEclipse中配置MyEclipse Database Explorer 方法(以mysql 数据库为例) 前言: 之前看到同学转了一篇帖子,就是关于在MyEclipse中配置mysql的,今天 ...