MaterialDesign系列文章(七)TabLayout的使用

不怕跌倒,所以飞翔

TabLayout的使用

用于展示Tab的控件

1基本的使用方式

  • 通过xml设置

        <android.support.design.widget.TabLayout
            android:id="@+id/tl"
            android:layout_width="match_parent"
            android:layout_height="45dp">
    
            <android.support.design.widget.TabItem
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Tab1"/>
    
            <android.support.design.widget.TabItem
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Tab2"/>
    
            <android.support.design.widget.TabItem
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Tab3"/>
    
        </android.support.design.widget.TabLayout>
    
  • 通过代码设置条目

    tabLayout.addTab(tabLayout.newTab().setText("Tab 1"));
    
  • 一些基本参数设置

    • app:tabSelectedTextColor 设置选中字体的颜色
    • app:tabTextColor 未选中字体的颜色
    • app:tabIndicatorColor 设置指示器下标的颜色
    • app:tabBackground 整个TabLayout的颜色
    • app:tabIndicatorHeight 设置指示器下标的高度(这里如果设置成0的时候就是没有底部的下划线了)
    • app:tabMode Tab的模式(后面会详细说明)
    • app:tabPadding 设置Tab内部的子控件的Padding
    • app:tabGravity 内容的显示模式

2改变TabLayout的内部字体大小

app:tabTextAppearance="@android:style/TextAppearance.Holo.Large"//设置文字的外貌

3添加图标

tabLayout.addTab(tabLayout.newTab().setText("Tab 1").setIcon(R.mipmap.ic_launcher));

4Tab模式

  • fixed 固定的,标签多的时候会被挤压,并且不能滑动
  • scrollable 非固定的,标签多的时候能滑动

5TabLayout的监听(addOnTabSelectedListener)

  • onTabSelected(TabLayout.Tab tab) 选中了Tab的逻辑
  • onTabUnselected(TabLayout.Tab tab) 未选中Tab的逻辑
  • onTabReselected(TabLayout.Tab tab) 再次选中Tab的逻辑

6和ViewPager联动

tabLayout.setupWithViewPager(Viewpager); (这里注意一点,当和ViewPager联动的时候要重写getPageTitle这个方法设置Tab的标题)

7默认选中某项

tabLayout.getTabAt(position).select();


这一系列文章的地址,希望对大家有帮助

项目地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容