TabLayout简介
TabLayout是Android Design Support Library新引入的控件,提供了一个水平的布局用来展示Tabs。
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("Tab 1"));
tabLayout.addTab(tabLayout.newTab().setText("Tab 2"));
tabLayout.addTab(tabLayout.newTab().setText("Tab 3"));
方式二:
<android.support.design.widget.TabLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<android.support.design.widget.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tab1"/>
...
</android.support.design.widget.TabLayout>
改变TabLayout的颜色
1. 改变选中字体的颜色:
app:tabSelectedTextColor="@android:color/holo_orange_light"
2. 改变未选中字体的颜色:
app:tabTextColor="@color/colorPrimary"
3. 改变指示器下标的颜色:
app:tabIndicatorColor="@android:color/holo_orange_light"
4. 改变整个TAbLayout的颜色:
app:tabBackground="color"
改变TabLayout内部字体的大小
app:tabTextAppearance="@android:style/TextAppearance.Holo.Large"
改变指示器下标的高度
app:tabIndicatorHeight="4dp"
添加图标
tabLayout.addTab(tabLayout.newTab().setText("Tab 1").setIcon(R.mipmap.ic_launcher));
Tab的模式
数据很多的时候,设置tab可以滑动:
app:tabMode="scrollable"
设置Padding
设置Tab内部的子控件的Padding:
app:tabPadding="xxdp"
app:tabPaddingTop="xxdp"
app:tabPaddingStart="xxdp"
app:tabPaddingEnd="xxdp"
app:tabPaddingBottom="xxdp"
设置整个TabLayout的Padding:
app:paddingEnd="xxdp"
app:paddingStart="xxdp
内容的显示样式
app:tabGravity="center"//居中,如果是fill,则是充满。
Tab的宽度限制
设置tab最大宽度:
app:tabMaxWidth="xxdp"
设置tab最小宽度:
app:tabMinWidth="xxdp"
Tab的margin
TabLayout开始位置的偏移量:
app:tabContentStart="100dp"
TabLayout事件监听
tabLayout.setOnTabSelectedListener(newTabLayout.OnTabSelectedListener() {
@Override
public voidonTabSelected(TabLayout.Tab tab) {
//选中了tab的逻辑
}
@Override
public voidonTabUnselected(TabLayout.Tab tab) {
//未选中tab的逻辑
}
@Override
public voidonTabReselected(TabLayout.Tab tab) {
//再次选中tab的逻辑
}
});
和ViewPager联动
tabLayout.setupWithViewPager(Viewpager);
默认选中某项
tablayout.getTabAt(position).select();