项目引入
在app下的build.gradle下添加
dependencies {
implementation 'io.github.h07000223:flycoTabLayout:3.0.0'
}
slildingTabLayout必须使用第一代的viewpage,
依赖 ViewPager** 使用,主要用于顶部导航栏实现,支持多种指示器样式、未读消息数显示及小红点提示。
<com.flyco.tablayout.SlidingTabLayout
android:id="@+id/mOuterTab"
android:layout_width="match_parent"
android:layout_height="50dp"
app:tl_indicator_color="@color/global_color"
app:tl_indicator_corner_radius="3dp"
app:tl_indicator_height="1dp"
app:tl_indicator_width="35dp"
app:tl_tab_space_equal="false"
app:tl_textBold="NONE"
app:tl_textSelectColor="@color/global_color"
app:tl_textUnselectColor="@color/black"
app:tl_textsize="@dimen/font_size_middle"
app:tl_underline_color="@color/black"
app:layout_constraintTop_toBottomOf="@id/motionLayout"
app:layout_constraintStart_toStartOf="parent"
app:tl_underline_height="0dp" />
<View
android:id="@+id/divider_full1"
style="@style/horizontalDivider"
app:layout_constraintTop_toBottomOf="@id/mOuterTab"
app:layout_constraintStart_toStartOf="parent"
/>
<androidx.viewpager.widget.ViewPager
android:id="@+id/fragment_list"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@id/mOuterTab"
app:layout_constraintBottom_toBottomOf="parent"
/>
com.flyco.tablayout.CommonTabLayoutS可以使用Fragment来切换
不依赖 ViewPager,可与其他控件自由组合使用,新增图标支持(如首页底部导航栏)
<com.flyco.tablayout.CommonTabLayout
android:id="@+id/tab_layout"
android:layout_width="0dp"
android:layout_height="60dp"
app:layout_constraintEnd_toStartOf="@+id/refresh_ic"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/sp_route"
app:tl_indicator_color="@color/global_color"
app:tl_indicator_corner_radius="3dp"
app:tl_indicator_height="3dp"
app:tl_tab_space_equal="false"
app:tl_textBold="BOTH"
app:tl_textSelectColor="@color/global_color"
app:tl_textUnselectColor="@color/black_60"
app:tl_textsize="18sp"
app:tl_underline_color="@color/black"
app:tl_underline_height="0dp" />
```
<FrameLayout
android:id="@+id/fr_fragment"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/header_container" />
属性列表
tl_indicator_color color 设置显示器颜色
tl_indicator_height dimension 设置显示器高度
tl_indicator_width dimension 设置显示器固定宽度
tl_indicator_margin_left dimension 设置显示器margin,当indicator_width大于0,无效
tl_indicator_margin_top dimension 设置显示器margin,当indicator_width大于0,无效
tl_indicator_margin_right dimension 设置显示器margin,当indicator_width大于0,无效
tl_indicator_margin_bottom dimension 设置显示器margin,当indicator_width大于0,无效
tl_indicator_corner_radius dimension 设置显示器圆角弧度
tl_indicator_gravity enum 设置显示器上方(TOP)还是下方(BOTTOM),只对常规显示器有用
tl_indicator_style enum 设置显示器为常规(NORMAL)或三角形(TRIANGLE)或背景色块 (BLOCK)
tl_underline_color color 设置下划线颜色
tl_underline_height dimension 设置下划线高度
tl_underline_gravity enum 设置下划线上方(TOP)还是下方(BOTTOM)
tl_divider_color color 设置分割线颜色
tl_divider_width dimension 设置分割线宽度
tl_divider_padding dimension 设置分割线的paddingTop和paddingBottom
tl_tab_padding dimension 设置tab的paddingLeft和paddingRight
tl_tab_space_equal boolean 设置tab大小等分
tl_tab_width dimension 设置tab固定大小
tl_textsize dimension 设置字体大小
tl_textSelectColor color 设置字体选中颜色
tl_textUnselectColor color 设置字体未选中颜色
tl_textBold boolean 设置字体加粗
tl_iconWidth dimension 设置icon宽度(仅支持CommonTabLayout)
tl_iconHeight dimension 设置icon高度(仅支持CommonTabLayout)
tl_iconVisible boolean 设置icon是否可见(仅支持CommonTabLayout)
tl_iconGravity enum 设置icon显示位置,对应Gravity中常量值,左上右下(仅支持CommonTabLayout)
tl_iconMargin dimension 设置icon与文字间距(仅支持CommonTabLayout)
tl_indicator_anim_enable boolean 设置显示器支持动画(only for CommonTabLayout)
tl_indicator_anim_duration integer 设置显示器动画时间(only for CommonTabLayout)
tl_indicator_bounce_enable boolean 设置显示器支持动画回弹效果(only for CommonTabLayout)
tl_indicator_width_equal_title boolean 设置显示器与标题一样长(only for SlidingTabLayout)