外观
折叠面板
ui.Accordion 创建多个分区,自上而下排列在一个带边框的框中,每个分区 由 ui.AccordionItem 构建:一个显示标题的头部,点击可以展开和收起, Enter 和空格键同样如此;头部下方是当其 *bool 为 true 时其函数构建的 内容。各项独立展开和收起;Up 和 Down 在各头部之间移动焦点,Home 和 End 亦然。某个条目的 Changed 会报告一次点击。
go
ui.Accordion(c, func() {
ui.AccordionItem(c, "General", &app.general, func() { app.generalSettings(c) })
ui.AccordionItem(c, "Privacy", &app.privacy, func() { app.privacySettings(c) })
ui.AccordionItem(c, "Advanced", &app.advanced, func() { app.advancedSettings(c) })
})若要一次只展开一个分区,可在某个分区展开时关闭其他分区:
go
for i, s := range sections {
open := app.section == i
ui.AccordionItem(c, s.Title, &open, s.Build).OnChange(func() {
app.section = -1
if open {
app.section = i
}
})
}当分区展开时,Tab 会从头部进入该分区的内容。
无障碍
辅助技术把每个头部都看作一个披露控件,处于展开或收起状态,位于其分区 内容之前。