原因:当前的TabLayout可以任意指定标签的位置,如页面上方或者下方
- 在Project Structure的Denpendencies标签中选择+按钮添加Library:com.android.support:design:23.1.0
(导入design包,design包的全名:com.android.support:design:23.1.0)
- 在布局文件中添加要显示的TabLayout控件
注意:在设置标签名称时必须设置TabLayout的全路径
- 在代码中获取TabLayout控件对象
- 通过以下方式添加标签:
tabLayout.addTab(tabLayout.newTab().setText("Tab"+i));同时Tab对象也可通过setIcon,setCustomView等方式设置标签中显示的图标或者自定义View视图
TabLayout常用的设置方法:
//设置选中标签下方导航条的颜色
// tl.setSelectedTabIndicatorColor(Color.GREEN);
//设置选中标签下方导航条的高度
// tl.setSelectedTabIndicatorHeight(30);
/*
* 设置标签的字体颜色
* 1.非选中标签的字体颜色
* 2. 选中标签的字体颜色
* */
// tl.setTabTextColors(Color.BLUE,Color.GREEN);
/*
* 设置Tab的模式
* 可选:
* MODE_FIXED 宽度始终是tl控件指定的宽度,如果标签过多,那么就无限挤压控件
* MODE_SCROLLABLE 每个标签都保持自身宽度,一旦标签过多,给标题栏提供支持横向滑动的功能
* */
// tl.setTabMode(TabLayout.MODE_SCROLLABLE);
//设置Tab标签的对其方式
//注意:此条属性必须配合MODE_FIXED进行使用
/*
* 可选择的参数值:
* GRAVITY_FILL 让每个标签平分TabLayout的全部宽度
* GRAVITY_CENTER 让每个标签显示自身宽度,然后所有标签居中显示
* */
tl.setTabGravity(TabLayout.GRAVITY_FILL);
- app:tabIndicatorColor tab的指示符颜色
- app:tabSelectedTextColor 选择tab的文本颜色
- app:tabTextColor 普通tab字体颜色
- app:tabMode 模式,可选fixed和scrollable fixed是指固定个数, scrollable是可以横行滚动的(逼格高)
- app:tabGravity 对齐方式,可选fill和center
注意:此两种属性值只有在tabMode设置为fixed的情况下有效
TabLayout的监听事件:
tl.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { |
- 准备一个集合或数组用于存储所有的标题名称
- 在Viewpager的适配器子类中添加重写的getPageTitle方法,通过修改返回值设置对应position的标签上显示的标题文字
- 通过tablayout对象调用setUpWithPager方法将tabLayout与viewpager绑定起来
TabLayout与Fragment结合使用的方式:
public void onTabSelected(TabLayout.Tab tab) {
|
TabLayout与ViewPager结合使用的方式:
@Override
//将Viewpager和TabLayout绑定起来, |