选项卡 Segment

选项卡组件与标签页组件的区别在于,标签页将内容和选项卡封装到一个组件内了,在业务场景是分类或者比较复杂的业务场景时推荐使用选项卡组件。

选项卡需segmentsegment-item两个组件关联使用。

segment-item用于设置每一个选项的名称 ;

segment 包裹在所有segment-item最外层 ,segment 下的所有 segment-item 属于同一个选项卡。

等宽选项卡

默认为等宽选项卡,当选项卡数过多时可在segment上设置scrollabletrue开启滚动标选项卡。

默认激活的是第一个选项卡,通过在 segment 组件上设置 active-key的值为任意 key值配置初始状态时激活的选项卡。

须在segment-item组件中传入tabkey属性,其中:

  • tab是选项卡显示的文字;

  • key为每个选项卡的唯一标识,对应segment中的active-key

示例代码

选项卡 Segment - 图1

  1. <l-segment bind:linchange="changeTabs">
  2. <l-segment-item tab="客厅" key="one" />
  3. <l-segment-item tab="卧室" key="two" />
  4. <l-segment-item tab="厨房" key="three" />
  5. </l-segment>

选项卡位置

默认选项卡位置在顶部,可通过在segment上设置placement属性切换选项卡位置,可选值有 top/left/right/bottom

图标选项卡

segment-item上设置icon时,可以在选项卡上添加图标,默认图标大小为28rpx,颜色与字体颜色一致。

通过在segment-item上设置icon属性设置每个选项卡显示图标类型,可配置图标类型同Icon组件一致,

图片选项卡

使用image配置图片资源的样式,可配置项有:

  • defaultImage:未选中时的图片资源,
  • activeImage:选中时的图片资源
  • picPlacement可以更改图片、图标的相对于文字的位置,默认为top

徽标选项卡

可在任意 segment-item上通过属性badge-count设置徽标的数值,不设置内容时徽标不显示,或者设置dotBadge=true时显示圆点徽标

徽标相关的属性有,作用分别如下:

  • badge-max-count 设置徽标数字最大值,超过最大值时显示${max-count}+;
  • badge-count-type 数字的显示方式, 可选值为overflowlimitcustom,默认值为overflow

示例代码

选项卡 Segment - 图2

  1. <l-segment active-key="one" bind:linchange="changeTabs">
  2. <l-segment-item tab="客厅" key="one" dot-badge="{{true}}"/>
  3. <l-segment-item tab="卧室" key="two" badge-count="97"/>
  4. <l-segment-item tab="厨房" key="three" badge-count="900" l-badge-class="badge-view"/>
  5. <l-segment-item tab="浴室" key="four" />
  6. </l-segment>

自定义选项卡

使用 slot可以自定义选项卡的内容和样式 , 此时不能设置 tab 属性 , 否则会同时展示两者的内容。

示例代码

选项卡 Segment - 图3

  1. <l-segment bind:linchange="changeTabs" l-tab-image-class="tab-image" has-line="{{false}}" l-class="segment-view"
  2. l-active-class="segment-active" activeKey="two">
  3. <l-segment-item key="one" slot="one">
  4. <view class="tab-item">
  5. <view>2月12日 10:00</view>
  6. <view>已开抢</view>
  7. </view>
  8. </l-segment-item>
  9. <l-segment-item key="two" slot="two">
  10. <view class="tab-item">
  11. <view>2月13日 10:00</view>
  12. <view>即将开始</view>
  13. </view>
  14. </l-segment-item>
  15. <l-segment-item key="three" slot="three">
  16. <view class="tab-item">
  17. <view>2月14日 10:00</view>
  18. <view>即将开始</view>
  19. </view>
  20. </l-segment-item>
  21. </l-segment>

选项卡初始样式

  • 选项卡位置在顶部和底部时的默认高度为80rpx,宽度等分,开启scrollable时,最小宽度为160rpx;
  • 选项卡位置在左边或右边时,默认宽度为160rpx,高度等分,开启scrollable时,最小高度为80rpx;
  • 可通过l-classl-active-classl-inactive-class覆盖默认选项卡样式。

选项卡属性 (Segment Attributes)

参数说明类型可选值默认值
active-key默认激活tabs的keyString-默认为第一个
placement选项卡位置Stringtop/left/right/bottomtop
scrollable是否滚动选项卡Booleanfalse-
active-color设置激活状态选项卡的文本和图标颜色String表示颜色的是16进制-
inactive-color设置未激活状态选项卡的文本和颜色String表示颜色的是16进制-
has-line设置是否显示选项卡下的装饰线Boolean-true
animated-for-line是否使用动画切换装饰线Booleanfalse
even设置是否是等宽或等高标签Boolean-true
width设置选项卡整体的宽度Number ,单位rpx--
height设置选项卡整体的高度Number ,单位rpx--
item-width设置选项卡子项的宽度Number ,单位rpx--
item-height设置选项卡子项的高度Number ,单位rpx--

选项卡子项属性 (Segment-item Attributes)

参数说明类型可选值默认值
key对应 active-key,必填String--
tab选项卡头显示文字String--
slot自定义选项卡时使用 , 与 key一致 , 此时不能设置 segment 的属性,否则优先显示 segment 的内容String--
icon设置选项卡图标类型String--
icon-size设置选项卡图标的大小String-28
picPlacement设置图片、图标的相对于文字的位置Stringtop/left/right/bottomtop
image设置选项卡图片资源Object{activeImage,defaultImage}-
badge-count-type数字的显示方式Stringoverflow/limit/customoverflow
dot-badge显示圆点徽标Booleanfalse/truefalse
badge-count徽标的数值String--
badge-max-count徽标数字最大值,超过最大值时显示${max-count}+Number——-99

选项卡外部样式类 (Segment ExternalClasses)

外部样式类名说明备注
l-class覆盖选项卡整体样式-
l-header-class覆盖选项卡整体样式l-class区别,该属性主要设置选项卡的heightwidth
l-active-class覆盖选项卡激活状态样式替代l-class-active
l-inactive-class覆盖选项卡默认状态样式替代l-class-inactive
l-line-class覆盖选项卡选中时装饰线的样式替代l-class-line
l-header-line-class覆盖选项卡装饰线的样式替代l-class-header-line
l-tab-image-class覆盖选项卡图片的样式替代l-class-tabimage
l-icon-class覆盖选项卡图标的样式替代l-class-icon
l-badge-class覆盖徽标的样式—-

已经弃用的外部样式类

以下这些外部样式类已经停止支持,将在未来的某个版本中去除,请使用上方的外部样式类替代

外部样式类名说明备注
l-class-active覆盖选项卡激活状态样式使用l-active-class替代
l-class-inactive覆盖选项卡默认状态样式使用l-inactive-class替代
l-class-line覆盖选项卡选中时装饰线的样式使用l-line-class替代
l-class-header-line覆盖选项卡装饰线的样式使用l-header-line-class替代
l-class-tabimage覆盖选项卡图片的样式使用l-tab-image-class替代
l-class-icon覆盖选项卡图标的样式使用l-icon-class

选项卡事件 (Segment Events)

事件名称说明返回值备注
bind:linchangesegment切换的回调事件{activeKey:当前激活选项卡的key,currentIndex:当前激活选项卡的索引-