tablayout基本讲解

来源:互联网 发布:不属于淘宝网禁售商品 编辑:程序博客网 时间:2024/04/27 23:54

  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>

3 0