Skip to content

可折叠区域 ​

ui.Collapsible 创建一个披露控件(disclosure),如同 SwiftUI 的 DisclosureGroup:一个标签旁跟着一支箭头,点击可以展开和收起,Enter 和 空格键同样如此;当 *bool 为 true 时,在其下方显示其函数构建的内容。 展开时箭头会旋转,内容会逐渐生长进入视野。Changed 会报告一次点击。

go
ui.Collapsible(c, "Advanced", &app.advanced, func() {
	ui.Checkbox(c, &app.verbose, "Verbose logging")
	ui.Checkbox(c, &app.experimental, "Experimental features")
})

当桌面系统要求减少动态效果时,内容会立即显示。

若要在一个框中放置多个分区,请使用折叠面板。

不带外观 ​

ui.CollapsibleBase 是一个不带外观的可折叠区域:一个 Trigger 用于 显示和隐藏 Panel 构建的内容,并用 Progress 使其生长和收缩—— Progress 从收起时的 0 到展开时的 1——供你实现自己的外观和动效:

go
p := ui.CollapsibleBase(c, &app.open)
p.Trigger.Gap(6).Children(func() {
	ui.Icon(c, chevron).Rotate(90 * p.Progress())
	ui.Text(c, "Details")
})
p.Panel(func() {
	ui.Text(c, app.details)
})

参见自定义控件。

无障碍 ​

辅助技术会看到一个由其标签命名的披露控件,处于展开或收起状态,它可以 像点击一样将其打开和关闭。