TabLayout(一)

作者: Android师哥 | 来源:发表于2018-05-30 10:51 被阅读0次
NightRain.png

使用TabLayout可以将大量关联的数据或者选项划分成更易理解的分组,有效的进行内容导航和内容组织。

效果

TabLayout效果图

布局文件

    <android.support.design.widget.TabLayout
        android:id="@+id/tl_mian_tab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:tabBackground="@color/colorWhite"
        app:tabContentStart="10dp"
        app:tabGravity="center"
        app:tabIndicatorColor="#ff0000"
        app:tabIndicatorHeight="2dp"
        app:tabMode="scrollable"
        app:tabSelectedTextColor="#ff0000"
        app:tabTextAppearance="@style/TabTextStyle"
        app:tabTextColor="#00ff00" />

添加数据

第一种方式(在java文件中)

        //添加Tab数据
        tl_mian.addTab(tl_mian.newTab().setText("推荐"));

第二种方式(在xml中添加)

    <android.support.design.widget.TabLayout
        android:layout_width="match_parent"
        app:tabMode="fixed"
        app:tabGravity="center"
        android:layout_height="40dp">

        <android.support.design.widget.TabItem
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="系统" />

        <android.support.design.widget.TabItem
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="消息" />

        <android.support.design.widget.TabItem
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="客服" />
    </android.support.design.widget.TabLayout>

常用方法

方法 说明
newTab 获取一个Tab对象,用来包装Item属性
addTab 添加一个Tab到TabLayout中(也就是一个Item)
addOnTabSelectedListener abLayout选择监听
setScrollPosition 选中某个位置的Item
setupWithViewPager 设置和ViewPage关联

自定义属性说明

自定义属性 说明 参数
tabBackground TabLayout背景颜色 color资源文件
tabContentStart TabLayout内容距离开始位置的距离 尺寸值
tabGravity TabLayou重力方式 center:居中显示
fill:填充
tabIndicatorColor TabLayout指示器的颜色 颜色值
tabIndicatorHeight TabLayout指示器的高度 尺寸值
tabMode TabLayout显示模式 scrollable:滑动显示
fixed:固定宽度显示
tabSelectedTextColor TabLayout选中时候文字的颜色 颜色值
tabTextColor TabLayout默认时候文字的颜色 颜色值
tabTextAppearance TabLayout文字样式 style资源文件
tabPadding TabLayout内边距 尺寸值

注意

  1. 设置tabGravity属性的前提是tabMode的属性必须为fixed;
  2. 如果设置了tabTextColor的属性,在设置tabTextAppearance可以不包含颜色属性,但是没有设置tabTextColor的话,tabTextAppearance里必须包含颜色属性;
  3. 在设置tabContentStart属性的时候如果看不到效果,把值加大一点在试一试,原因是在源码中paddingStart = Math.max(0, mContentInsetStart - mTabPaddingStart);有这样一句话,如果你设置的值小于TabPadding,就取0;
  4. 使用的时候记得导包正确android.support.design.widget.TabLayout;

相关文章

网友评论

    本文标题:TabLayout(一)

    本文链接:https://www.haomeiwen.com/subject/iurtsftx.html