flycoTabLayout 标签栏组件,实现多页签,多个碎片页面管理切换

185 阅读3分钟

项目引入

在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)