Material Design伴随android5.0出现后,我们发现Google终于意识到了自己以往在UI设计方面的不足(或者说缺陷),
其中一款用于标签导航的控件正式出现在design兼容包中——滑动指示选项卡tablayout,tablayout主要用于可切换的标签
效果。(注:大家千万别和TableLayout控件搞混了,两个之间没有一毛钱关系)
首先在代码中获取tablayout控件,然后通过代码的方式添加签:
tablayout.addTab(tablayout.newTab().setText("tab"+i));
tablayout.addTab()中还可以添加boolean参数,true为默认选中标签,false为该标签没被选中;
tablayout.addTab(tablayout.newTab().setText("tab"+i),false);在布局文件中也可以:
app:tabMode //参数可选fixed和scrollable——fixed是指固定个数, scrollable是使其可以横行滚动
app:tabGravity //对齐方式,可选fill和center(注:此两种属性值只有在tabMode设置为fixed的情况下有效)在代码中还可以(代码中写的方法在xml的TabLayout控件下都有与之对应的属性,代码觉得麻烦的就在xml中设置):
tablayout.setSelectedTabIndicatorHeight(); //设置被选中标签下方导航条的高度
tablayout.setTabTextColors(Color.Black,Color.Gray); //设置标签的字体颜色,1为未选中标签的字体颜色,2为被 选中标签的字体颜色
tablayout.setTabMode();
setTabMode()有两个可选参数:
MODE_FIXED //表示宽度始终是tablayout控件指定的宽度,如果标签过多,那么就无限挤压控件
MODE_SCROLLABLE //表示每个标签都保持自身宽度,一旦标签过多,给标题栏提供支持横向滑动的功能
tablayout.setTabGravity(); //注:此条属性必须配合MODE_FIXED使用,不然不起作用
TabGravity有两个可选参数:
GRAVITY_FILL //让每个标签平分TabLayout的全部宽度
GRAVITY_CENTER //让每个标签显示自身宽度,然后所有标签居中显示
TabLayout还有以下常用设置方法:
app:tabIndicatorColor // tab指示符颜色
app:tabSelectedTextColor // tab被选中字体颜色
app:tabTextColor // tab未被选中字体颜色
tablayout.setSelectedTabIndicatorColor(); //设置被选中标签下方导航条颜色
TabLayout中改变tab的字体大小只能依靠app:tabTextAppearance来设置
app:tabTextAppearance="@style/tabtextstyle"
在res/values/styles中添加:
<style name="tabtextstyle">
<item name="android:textSize">@dimen/tabtextsize</item>
</style>
在res/values/dimens中添加:
<dimen name="tabtextsize">12sp</dimen>