TabView
TabView 是一个带标签页的面板容器。它维护一行可水平滚动的 Tab 标签头,以及一个用于显示当前选中标签内容的内容面板。切换标签页时会显示新内容并隐藏其他所有内容。
在编辑器中只有 Tab(及其子类)可以作为子元素添加。
UIElement 上记录的所有内容(布局、样式、事件、数据绑定等)同样适用于此处。
用法
var tabView = new TabView();
var content1 = new UIElement();
content1.addChild(new Label().setText("Settings content", false));
var content2 = new UIElement();
content2.addChild(new Label().setText("Info content", false));
tabView.addTab(new Tab().setText("Settings"), content1);
tabView.addTab(new Tab().setText("Info"), content2);
tabView.setOnTabSelected(tab -> System.out.println("Selected: " + tab));
parent.addChild(tabView);
XML
<tab-view>
<tab text="Settings">
<tab-content>
<label>Settings content here</label>
</tab-content>
</tab>
<tab text="Info">
<tab-content>
<label>Info content here</label>
</tab-content>
</tab>
</tab-view>
每个 <tab> 元素是一个标签头;其子元素 <tab-content> 描述了当该标签页激活时显示的内容面板。
内部结构
| 索引 | 字段 | CSS 类 | 描述 |
|---|---|---|---|
0 |
tabContentContainer |
.__tab-view_tab_content_container__ |
容纳所有内容元素的面板(仅显示当前激活的一个)。 |
1 |
tabHeaderContainer |
.__tab-view_tab_header_container__ |
标签头行(包含 tabScroller)。 |
tabScroller 是一个嵌套在 tabHeaderContainer 内的 ScrollerView:
| 字段 | CSS 类 | 描述 |
|---|---|---|
tabScroller |
.__tab-view_tab_scroller__ |
容纳所有标签头的可水平滚动视图。 |
字段
| 名称 | 类型 | 访问权限 | 描述 |
|---|---|---|---|
tabHeaderContainer |
UIElement |
public final |
标签头行的容器。 |
tabScroller |
ScrollerView |
public final |
容纳标签头的水平滚动器。 |
tabContentContainer |
UIElement |
public final |
所有内容面板的容器。 |
tabContents |
BiMap<Tab, UIElement> |
private (getter) |
标签头 ↔ 内容面板的双向映射。 |
selectedTab |
Tab |
private (getter/nullable) |
当前选中的标签页。 |
方法
| 方法 | 返回 | 描述 |
|---|---|---|
addTab(Tab, UIElement) |
TabView |
追加一个新标签页及其内容面板。如果是第一个则自动选中。 |
addTab(Tab, UIElement, int) |
TabView |
在指定索引处插入一个标签页。 |
removeTab(Tab) |
TabView |
移除一个标签页及其内容。如果被移除的是当前选中的,则选中下一个标签页。 |
selectTab(Tab) |
TabView |
选中一个标签页,显示其内容并隐藏其他所有内容。 |
clear() |
TabView |
移除所有标签页和内容。 |
setOnTabSelected(Consumer<Tab>) |
— | 当任何标签页被选中时触发的回调。 |
tabHeaderContainer(Consumer<UIElement>) |
TabView |
配置标签头容器。 |
tabScroller(Consumer<ScrollerView>) |
TabView |
配置标签头滚动器。 |
tabContentContainer(Consumer<UIElement>) |
TabView |
配置内容容器。 |