# 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
的,也就是DslTabLayout
的childView
.
DslTabIndicator
类控制指示器, 属性indicatorStyle
可选值如下:
INDICATOR_STYLE_NONE
不绘制指示器INDICATOR_STYLE_BACKGROUND
指示器绘制在item
的后面.(item
请不要设置background
, 否则可能挡住指示器)INDICATOR_STYLE_TOP
绘制在item
的顶部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" />