史上最详尽tablayout使用

本文详细介绍了TabLayout的使用,从基本概念到各种显示方式,包括布局设置、代码配置及属性调整,提供了全面的实践指导。
摘要由CSDN通过智能技术生成

史上最详尽tablayout使用

一、什么是tablayout?

源码中定义:

TabLayout provides a horizontal layout to display tabs.

翻译:tablayout展示tabs(标签)的水平布局。(继承horizontalScrollView)

二、tablayout基本使用方式

1、直接显示tablayout方式一

布局中:

<android.support.design.widget.TabLayout
          android:id="@+id/tabLayout"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"/>

代码中:

tabLayout= (TabLayout) findViewById(R.id.tabLayout);
tablayout.addTab(tablayout.newTab().setText("新闻"));
tablayout.addTab(tablayout.newTab().setText("历史"));
tablayout.addTab(tablayout.newTab().setText("美图"));

效果:这里写图片描述

2、直接显示tablayout使用方式二

布局中:

 <android.support.design.widget.TabLayout
        android:id="@+id/tablayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true">

        <android.support.design.widget.TabItem
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="新闻" />

        <android.support.design.widget.TabItem
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="历史" />

        <android.support.design.widget.TabItem
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="美图" />
    </android.support.design.widget.TabLayout>

代码中不用任何代码,效果跟方式一一样

三、tablayout的基本属性

1、在布局中设置属性

<android.support.design.widget.TabLayout
        android:id="@+id/tablayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        app:tabBackground="@color/gallery_red"//改变整个tablayout的背景颜色
        app:tabContentStart="100dp"//tablayout开始位置的偏移量,相当于margin
        app:tabGravity="center"//内容显示模式,center和fill
        app:tabIndicatorColor="@color/black"//设置指示器的颜色
        app:tabIndicatorHeight="4dp"//设置指示器的高度
        app:tabMaxWidth="14dp"//设置最大的tab宽度
        app:tabMinWidth="10dp"//设置最小的宽度
        app:tabMode="fixed"//设置tab的模式,默认是fixed,标签被挤压不能滑动,scrollable可以滑动
        app:tabPadding="4dp"//设置tab内部子控件的padding
        app:tabSelectedTextColor="@color/black"//设置选中文字的颜色
        app:tabTextAppearance="@style/tablayuot_style"//设置文字的外貌
        app:tabTextColor="@color/gray" //设置未选中文字的颜色/>

注意:设置文字外貌有坑,只要设置了style必须有文字大小和颜色

2、在代码中设置属性

    //在代码中添加tab
    tablayout.addTab(tablayout.newTab().setText("美图"));

    //给tab设置图片
    tablayout.getTabAt(0).setIcon(R.drawable.ic_dashboard_black_24dp);

    //给tab设置监听
    tablayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
         @Override
         public void onTabSelected(TabLayout.Tab tab) {
             //选中了tab的逻辑

         @Override
         public void onTabUnselected(TabLayout.Tab tab) {
             //未选中tab的逻辑
         }

         @Override
         public void onTabReselected(TabLayout.Tab tab) {
             //再次选中tab的逻辑
         }

     //设置tab默认选中子控件
     tablayout.getTabAt(position).select();

     //最关键最常用的,与viewpager关联使用
     tablayout.setupWithViewPager(viewpager);

四、源码分析

自己看吧。

五、后记

内容精简、全面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值