# 全部属性
包含
offset
的属性, 属于补偿值. 比如动态测量出来的width=100
, 设置offset=20
, 那么width=120
.
有些
offset
属性, 会受到gravity
的影响, 自动取负值
.
# TabLayout属性
<!--Item是否等宽-->
<attr name="tab_item_is_equ_width" format="boolean" />
<!--默认选中的索引值-->
<attr name="tab_default_index" format="integer" />
<!--等宽模式下, 指定item的宽度. 不指定则平分-->
<attr name="tab_item_width" format="dimension" />
<!--在TabLayout wrap_content时, child match_parent时的高度-->
<attr name="tab_item_default_height" format="dimension" />
<!--是否绘制边框-->
<attr name="tab_draw_border" format="boolean" />
<!--是否绘制分割线-->
<attr name="tab_draw_divider" format="boolean" />
<!--是否绘制指示器-->
<attr name="tab_draw_indicator" format="boolean" />
<!--高凸模式下的背景drawable-->
<attr name="tab_convex_background" format="reference|color" />
<!--方向-->
<attr name="tab_orientation" format="enum">
<enum name="VERTICAL" value="1" />
<enum name="HORIZONTAL" value="0" />
</attr>
# 居中选择模式
<!--是否激活滑动选择模式-->
<attr name="tab_enable_selector_mode" format="boolean" />
# indicator 指示器相关属性
<!--强制指定指示器的Drawable-->
<attr name="tab_indicator_drawable" format="reference" />
<!--强制指定Drawable的颜色-->
<attr name="tab_indicator_color" format="color" />
<!--指示器的绘制类型-->
<attr name="tab_indicator_style" format="enum">
<!--不绘制-->
<enum name="STYLE_NONE" value="0" />
<!--绘制在顶部-->
<enum name="STYLE_TOP" value="0x11" />
<!--绘制在底部-->
<enum name="STYLE_BOTTOM" value="0x12" />
<!--绘制在背面-->
<enum name="STYLE_BACKGROUND" value="0x1" />
</attr>
<!--是否激活流式效果, 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" />
注意: tab_indicator_color
属性, 是给tab_indicator_drawable
属性指定的Drawable
着色的.所以如果没有配置tab_indicator_drawable
, 那么tab_indicator_color
也就没有效果!
# xml配置指示器
请参考GradientDrawable (opens new window)
<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" />
<!--指示器颜色渐变数组,多个色值用`,`号隔开. 格式:#FF0000,#00FF00,#FF0000-->
<attr name="tab_indicator_gradient_colors" format="string" />
<!--指示器渐变start的颜色, 优先响应colors属性-->
<attr name="tab_indicator_gradient_start_color" format="color" />
<!--指示器渐变end的颜色, 优先响应colors属性-->
<attr name="tab_indicator_gradient_end_color" format="color" />
# Tab Item 样式相关属性
<!--item选中时 文本的颜色-->
<attr name="tab_select_color" format="color" />
<!--item未选中时 文本的颜色-->
<attr name="tab_deselect_color" format="color" />
<!--选中时 图标(Drawable)的颜色, 默认是文本的颜色-->
<attr name="tab_ico_select_color" format="color" />
<!--未选中时 图标(Drawable)的颜色, 默认是文本的颜色-->
<attr name="tab_ico_deselect_color" format="color" />
<!--是否激活自动设置文本的颜色-->
<attr name="tab_enable_text_color" format="boolean" />
<!--是否激活自动设置图标的颜色-->
<attr name="tab_enable_ico_color" format="boolean" />
<!--是否激活文本变粗-->
<attr name="tab_enable_text_bold" format="boolean" />
<!--是否激活文本颜色渐变-->
<attr name="tab_enable_gradient_color" format="boolean" />
<!--是否激活图标颜色渐变-->
<attr name="tab_enable_ico_gradient_color" format="boolean" />
<!--是否激活缩放渐变-->
<attr name="tab_enable_gradient_scale" format="boolean" />
<!--缩放渐变的最小值-->
<attr name="tab_min_scale" format="float" />
<!--缩放渐变的最大值-->
<attr name="tab_max_scale" format="float" />
<!--是否激活文本大小渐变-->
<attr name="tab_enable_gradient_text_size" format="boolean" />
<!--文本字体大小最小值-->
<attr name="tab_text_min_size" format="dimension" />
<!--文本字体大小最大值-->
<attr name="tab_text_max_size" format="dimension" />
# divider 分割线相关属性
<!--强制指定分割线的Drawable-->
<attr name="tab_divider_drawable" format="reference" />
<!--参考[GradientDrawable](https://developer.android.google.cn/reference/android/graphics/drawable/GradientDrawable)-->
<attr name="tab_divider_stroke_color" format="color" />
<attr name="tab_divider_solid_color" format="color" />
<attr name="tab_divider_stroke_width" format="dimension" />
<attr name="tab_divider_radius_size" format="dimension" />
<!--分割线margin距离-->
<attr name="tab_divider_margin_left" format="dimension" />
<attr name="tab_divider_margin_right" format="dimension" />
<attr name="tab_divider_margin_top" format="dimension" />
<attr name="tab_divider_margin_bottom" format="dimension" />
<!--分割线的宽度-->
<attr name="tab_divider_width" format="dimension" />
<!--分割线显示的位置-->
<attr name="tab_divider_show_mode" format="flags">
<flag name="SHOW_DIVIDER_BEGINNING" value="1" />
<flag name="SHOW_DIVIDER_MIDDLE" value="2" />
<flag name="SHOW_DIVIDER_END" value="4" />
</attr>
# border 边框相关属性
<!--强制指定边框的Drawable-->
<attr name="tab_border_drawable" format="reference" />
<!--参考[GradientDrawable](https://developer.android.google.cn/reference/android/graphics/drawable/GradientDrawable)-->
<attr name="tab_border_stroke_color" format="color" />
<attr name="tab_border_solid_color" format="color" />
<attr name="tab_border_stroke_width" format="dimension" />
<attr name="tab_border_radius_size" format="dimension" />
<!--边框是否要负责绘制item的背景, 可以自动根据边框的圆角自动配置给item-->
<attr name="tab_border_draw_item_background" format="boolean" />
<!--高度补偿-->
<attr name="tab_border_item_background_height_offset" format="dimension" />
<!--宽度补偿-->
<attr name="tab_border_item_background_width_offset" format="dimension" />
# badge 角标相关属性
<!--Badge 角标相关属性-->
<!--是否绘制角标-->
<attr name="tab_draw_badge" format="boolean" />
<!--角标的背景填充颜色-->
<attr name="tab_badge_solid_color" format="color" />
<!--角标文本的颜色-->
<attr name="tab_badge_text_color" format="color" />
<!--圆点状态时的半径大小-->
<attr name="tab_badge_circle_radius" format="dimension" />
<!--角标的圆角半径-->
<attr name="tab_badge_radius" format="dimension" />
<!--角标重力-->
<attr name="tab_badge_gravity" format="flags">
<flag name="top" value="0x30" />
<flag name="bottom" value="0x50" />
<flag name="left" value="0x03" />
<flag name="right" value="0x05" />
<flag name="center_vertical" value="0x10" />
<flag name="center_horizontal" value="0x01" />
<flag name="center" value="0x11" />
</attr>
<!--x轴方向的偏移量, 会根据[Gravity]自动取负值-->
<attr name="tab_badge_offset_x" format="dimension" />
<!--同上-->
<attr name="tab_badge_offset_y" format="dimension" />
<!--参考[View]的padding属性-->
<attr name="tab_badge_padding_left" format="dimension" />
<attr name="tab_badge_padding_right" format="dimension" />
<attr name="tab_badge_padding_top" format="dimension" />
<attr name="tab_badge_padding_bottom" format="dimension" />
<!--角标的文本内容, 多用于xml预览-->
<attr name="tab_badge_text" format="string" />
<!--角标的文本字体大小-->
<attr name="tab_badge_text_size" format="dimension" />
<!--角标[tab_badge_gravity]定位锚点-->
<attr name="tab_badge_anchor_child_index" format="integer" />
<!--是否要忽略锚点view的padding-->
<attr name="tab_badge_ignore_child_padding" format="boolean" />
<!--角标圆形状态下的单独配置的偏移-->
<attr name="tab_badge_circle_offset_x" format="dimension" />
<!--角标圆形状态下的单独配置的偏移-->
<attr name="tab_badge_circle_offset_y" format="dimension" />
<!--end...-->
# DslTabLayout Child 属性
以下属性, 作用在child view
上:
<!--支持按比例设置宽度, sw屏幕宽度 pw父宽度, 0.5sw:屏幕宽度的0.5倍, 0.3pw:父宽度的0.3倍-->
<attr name="layout_tab_width" format="string" />
<!--同上 sh, ph-->
<attr name="layout_tab_height" format="string" />
<!--高凸模式, 需要高凸的高度-->
<attr name="layout_tab_convex_height" format="dimension" />
<!--单独指定child的锚点索引-->
<attr name="layout_tab_indicator_content_index" format="integer" />