史上最详尽tablayout使用

来源:互联网 发布:excel单元格重复数据 编辑:程序博客网 时间:2024/05/21 11:14

史上最详尽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);

四、源码分析

自己看吧。

五、后记

内容精简、全面。