tabs 选项卡
tabs 支持用户切换想关联的内容区域,但组件本身不包含内容区域。
XML 元素 |
|
|---|---|
Java 类 |
|
基本用法
默认情况下,选项卡在水平方向依次排列。选项卡通常位于关联内容区域的顶部或底部。
下面的示例演示了 tabs 的基本功能。
<tabs width="100%">
<tab id="issueTab" label="Issues"/>
<tab id="featureTab" label="Features"/>
<tab id="bugTab" label="Bugs"/>
</tabs>
示例中,组件包含两个内部的 tab 元素。若要更新与所选选项卡关联的内容,需要定义 SelectedChangeEvent 事件的处理方法。选择选项卡时,将触发此事件,从而可以更新显示的内容。
方向
虽然选项卡默认是水平方向排列的,但在某些场景中,也可以使用垂直排列。例如,对于数量较多的选项卡,垂直排列可能为标签文本展示提供更多的空间。
通过 orientation 修改 tabs 的排列方向。
<checkbox id="orientationCheckbox" label="Vertical"/>
<tabs id="tabs" width="100%">
<tab id="profileTab">
<icon icon="USER"/>
<span text="Profile"/>
</tab>
<tab id="notificationsTab">
<icon icon="BELL"/>
<span text="Notifications"/>
</tab>
<tab id="settingsTab">
<icon icon="COG"/>
<span text="Settings"/>
</tab>
</tabs>
@ViewComponent
protected Tabs tabs;
@Subscribe("orientationCheckbox")
protected void onOrientationCheckboxValueChane(ComponentValueChangeEvent<JmixCheckbox, Boolean> event) {
tabs.setOrientation(event.getValue() ? Tabs.Orientation.VERTICAL : Tabs.Orientation.HORIZONTAL);
}
状态
tab 可以选择、不选择或禁用:
通过这些状态开发者可以确定哪个选项卡当前处于活动状态,以及哪些选项卡可能暂时不可用或被禁用。
<tabs id="tabs" width="100%">
<tab id="tab1" label="Selected"/>
<tab id="tab2" label="Unselected"/>
<tab id="tab3" label="Disabled" enabled="false"/>
</tabs>
@Subscribe("tabs")
protected void onTabsSelectChangeEvent(Tabs.SelectedChangeEvent event) {
event.getPreviousTab().setLabel("Unselected");
event.getSelectedTab().setLabel("Selected");
}
标签
选项卡内部可以使用几乎任何组件编写易分辨的选项卡标签:
<tabs id="tabs" width="100%">
<tab id="profileTab">
<icon icon="USER"/>
<span text="Profile"/>
</tab>
<tab id="notificationsTab">
<icon icon="BELL"/>
<span text="Notifications"/>
</tab>
<tab id="settingsTab">
<icon icon="COG"/>
<span text="Settings"/>
</tab>
</tabs>
样式版本
使用 themeNames 属性配置一个或多个样式。
| 样式 | 描述 | 支持的主题 |
|---|---|---|
|
作用于单个 |
Lumo |
|
在容器内居中标签页。 |
Lumo |
|
使标签页更小。 |
Aura, Lumo |
|
弱化视觉样式,仅突出显示标签文本。 |
Lumo |
|
隐藏用于导航溢出标签页的滚动按钮。 |
Aura, Lumo |
|
为所有标签页分配等宽并禁用滚动。 |
Lumo |
事件和处理器
下面是 tabs 的特殊事件和处理器:
| 名称 | 描述 |
|---|---|
|
下面是 tabs 支持的其他通用事件:
XML 内部元素
|
如需通过 Jmix Studio 添加元素,请在 XML 或 Jmix UI 结构面板中选中该组件,然后点击组件属性面板中的 Add 按钮。 |
tab
单独的选项卡通过 tab 元素定义。
tab XML 属性id - ariaLabel - ariaLabelledBy - classNames - colspan - css - enabled - flexGrow - label - themeNames - visible
tab 事件和处理器