快速学习网站制作/站长分析工具
简介
所在包:android.support.design.widget
继承类:android.widget.HorizontalScrollView
背景:北京时间2015.5.29谷歌I/O开发者大会,带来了更加详细的Material Design设计规范,同时,也给我们带来了全新的Android Design Support Library,在这个support库里面,Google给我们提供了更加规范的MD设计风格的控件。最重要的是,Android Design Support Library的兼容性更广,直接可以向下兼容到Android 2.2。这不得不说是一个良心之作。
Android源码中TabLayout类说明:TabLayout提供了显示选项卡的水平布局。
使用
1.加入引用
implementation 'com.android.support:design:28.0.0'
2.在布局文件中添加
<android.support.design.widget.TabLayoutandroid:id="@+id/tab_layout"android:layout_width="match_parent"android:layout_height="wrap_content"app:tabIndicatorHeight="1dp"app:tabSelectedTextColor="@color/colorPrimary"app:tabTextColor="@color/colorAccent" />
3.初始化
/*** 初始化选项内容*/private void init() {tabLayout.addTab(tabLayout.newTab().setText(s).setIcon(R.mipmap.ic_launcher));tabLayout.addTab(tabLayout.newTab().setText(s));tabLayout.addTab(tabLayout.newTab().setText(s));tabLayout.addTab(tabLayout.newTab().setText(s));}
初始化的图片:
4.点击事件
tabLayout.addOnTabSelectedListener(new TabLayout.BaseOnTabSelectedListener() {@Overridepublic void onTabSelected(TabLayout.Tab tab) {//点击当前位置Log.i(TAG, "onTabSelected: " + tab.toString());}@Overridepublic void onTabUnselected(TabLayout.Tab tab) {}@Overridepublic void onTabReselected(TabLayout.Tab tab) {//重新点击当前位置}});
TabLayout.Tab 内部并没有实现toString(),所以想看返回什么参数,可以通过断点 ~
如图可以看到我们点击的位置和标题。
扩展属性
1.修改颜色
//设置字体默认颜色
app:tabTextColor="@color/colorAccent"//设置字体选择后的颜色
app:tabSelectedTextColor="@color/colorPrimary"//设置指示器的颜色
app:tabIndicatorColor="#000000"//设置Tab背景颜色
app:tabBackground="#000000"
2.修改指示器
//设置指示器颜色 在上面 //设置指示器高度
app:tabIndicatorHeight="2dp"//设置指示器隐藏
app:tabIndicatorHeight="0dp"
3.Tab滚动方式
//可滚动
app:tabMode="scrollable"//固定
app:tabMode="fixed"
4.Tab布局方式
//内容中心显示
app:tabGravity="GRAVITY_CENTER"//内容尽可能充满TabLayout
app:tabGravity="GRAVITY_FILL"
5.字体大小
app:tabTextAppearance="@style/TabLayoutTextStyle" <style name="TabLayoutTextStyle"><item name="android:textSize">18sp</item></style>
扩展方法
1.返回当前所选标签的位置
getSelectedTabPosition
2.返回指定位置的tab
getTabAt(int index)
3.设置选项卡的滚动位置
setScrollPosition(int position,float positionOffset,boolean updateSelectedText)
当标签tab显示为滚动容器(如ViewPager)的一部分时,此功能非常有用。
参数:
位置int:当前滚动位置
positionOffset float:表示从位置偏移的[0, 1)的值。
updateSelectedText boolean:是否更新文本的选择状态
4.将TabLayout与ViewPager链接在一起
setupWithViewPager(ViewPager viewPager)
5.将TabLayout与ViewPager链接在一起,
当更改PagerAdapter时,TabLayout是否更新由autoRefresh决定
setupWithViewPager(ViewPager viewPager,boolean autoRefresh)
参考文章
TabLayout使用介绍:https://blog.csdn.net/tzhenxiong/article/details/86258459
TabLayout的属性介绍:https://www.jianshu.com/p/23863e4bbea1
Android:使用TabLayout详解:https://www.cnblogs.com/lyd447113735/p/8693931.html