# DslTabIndicator指示器控制类

使用DslTabIndicator控制指示器

默认DslTabLayout开启了指示器的绘制drawIndicator

# 设置指示器

可以通过xml属性tab_indicator_drawable指定, 或者DslTabIndicator类的indicatorDrawable属性设置.

注意:此Drawable的宽高, 会由库控制.

可以通过tab_indicator_color属性, 强制给指示器的Drawable着色.


如果不想配置tab_indicator_drawable属性, 可以通过以下属性, 动态配置Drawable, 其本质也是由库中的代码生成了Drawable并赋值给了indicatorDrawable变量

<!--请参考[GradientDrawable](https://developer.android.google.cn/reference/android/graphics/drawable/GradientDrawable)-->
<attr name="tab_indicator_shape" format="enum">
   <enum name="RECTANGLE" value="0" />
   <enum name="OVAL" value="1" />
   <enum name="LINE" value="2" />
   <enum name="RING" value="3" />
</attr>
<attr name="tab_indicator_solid_color" format="color" />
<attr name="tab_indicator_stroke_color" format="color" />
<attr name="tab_indicator_stroke_width" format="dimension" />
<attr name="tab_indicator_dash_width" format="dimension" />
<attr name="tab_indicator_dash_gap" format="dimension" />
<attr name="tab_indicator_radius" format="dimension" />
<attr name="tab_indicator_radii" format="string" />
<attr name="tab_indicator_gradient_colors" format="string" />
<attr name="tab_indicator_gradient_start_color" format="color" />
<attr name="tab_indicator_gradient_end_color" format="color" />

# 指示器Indicator绘制的顺序

这个顺序, 是相当于item的,也就是DslTabLayoutchildView.

DslTabIndicator类控制指示器, 属性indicatorStyle可选值如下:

  1. INDICATOR_STYLE_NONE 不绘制指示器
  2. INDICATOR_STYLE_BACKGROUND 指示器绘制在item的后面.(item请不要设置background, 否则可能挡住指示器)
  3. INDICATOR_STYLE_TOP 绘制在item的顶部
  4. INDICATOR_STYLE_BOTTOM 绘制在item的底部.(默认值)

# 其他属性

 <!--是否激活流式效果, ViewPager在滚动时, 指示器的宽度由小变大,再由大变小-->
 <attr name="tab_indicator_enable_flow" format="boolean" />
 <!--tab child的索引相差多少值时, 才开启flow效果-->
 <attr name="tab_indicator_flow_step" format="integer" />
 <!--指示器的宽度-->
 <attr name="tab_indicator_width" format="dimension|flags">
     <flag name="WRAP_CONTENT" value="-2" />
     <flag name="MATCH_PARENT" value="-1" />
 </attr>
 <!--宽度的补偿-->
 <attr name="tab_indicator_width_offset" format="dimension" />
 <!--同上-->
 <attr name="tab_indicator_height" format="dimension|flags">
     <flag name="WRAP_CONTENT" value="-2" />
     <flag name="MATCH_PARENT" value="-1" />
 </attr>
 <!--同上-->
 <attr name="tab_indicator_height_offset" format="dimension" />
 <!--x轴的补偿-->
 <attr name="tab_indicator_x_offset" format="dimension" />
 <!--y轴的补偿, 会根据[tab_indicator_style]的类型, 自动取负值.-->
 <attr name="tab_indicator_y_offset" format="dimension" />
 <!--指示器child的锚点索引, 用来辅助定位计算指示器的宽度,高度,中点坐标-->
 <attr name="tab_indicator_content_index" format="integer" />
 <!--切换指示器时, 是否需要动画的支持-->
 <attr name="tab_indicator_anim" format="boolean" />