组件
标签页
标签列表、分段控件和系统标签栏。
ui.Tabs[T] 以分段控件或标签列表的形式从几个值中选一个,应用在旁边显示所选值的内容。标签列表是一个 Tab 停靠点:方向键在其中移动。
section := core.NewSignal(cx, "overview")
ui.Tabs[string]{
Options: []ui.Option[string]{
{Value: "overview", Label: "概览"},
{Value: "activity", Label: "动态"},
{Value: "settings", Label: "设置"},
},
Value: section.Get,
OnChange: section.Set,
Label: "分区",
}
变体与尺寸
Variant 是 TabsSegmented(默认,凸起的指示块在凹陷轨道中)或 TabsUnderline(选中标签下方的强调线)。Size 是 SizeDefault、SizeSmall 或 SizeLarge,Equal 让每个标签等宽,而不是按标签文字适应。
ui.Tabs[string]{Variant: ui.TabsUnderline, Equal: true, Size: ui.SizeSmall, Options: tabs, Value: section.Get, OnChange: section.Set}
选项可以带 Icon、Disabled 函数、Content 节点和 TestID。Content 替代标签文字,并继承标签的文本样式。
标签栏
ui.TabShell 在宽窗口把同一批标签放进侧边栏,在窄窗口放进底部栏。mobile.TabBar 是 iOS 和 Android 的系统标签栏,使用 mobile.TabBarItem{Title, Icon}、Selected 和 OnChange;其他平台上它不占空间,因此在那里显示 ui.Tabs。
无障碍
列表报告 RoleTabList,每个标签报告 RoleTab,选中的标签报告自己的状态。列表是一个 Tab 停靠点;左/上、右/下、Home 和 End 在启用的标签间移动,到达的标签会报告按压。Label 命名列表。
平台
iOS 和 Android 显示系统标签栏,带各自的外观和手势;macOS、Windows、Linux 和 Web 显示 ui.Tabs。应用的内容在每个目标上相同。