外观
分栏视图
ui.Split 将两个面板并排布局,中间有一个分隔条,用户可以拖动它来调整 大小;当分隔条获得键盘焦点后,也可以用方向键移动它:*float32 是第一个 面板的宽度,分隔条与两侧边缘至少保持 40 DIP 的距离。当窗口留出的空间 小于此值时,第一个面板会让位,以便第二个面板保留其 40 DIP;当空间重新 充足时,第一个面板会恢复其大小;*float32 始终保留用户选择的尺寸。 Changed 会报告一次移动。
go
ui.Split(c, &app.sidebarWidth, func() { app.files(c) }, func() { app.editor(c) }).Fill()ui.SplitVertical 把第一个面板放在第二个上方,*float32 是它的高度:
go
ui.SplitVertical(c, &app.consoleHeight, func() { app.editor(c) }, func() { app.console(c) }).Grow(1)ui.SplitPercent 和 ui.SplitVerticalPercent 则改为接受第一个面板所占 空间的百分比,取值 0 到 100:此时两个面板会随窗口按比例伸缩,就像编辑器 下方的结果面板那样。
go
ui.SplitVerticalPercent(c, &app.editorPercent, func() { app.editor(c) }, func() { app.results(c) }).Grow(1)把尺寸保存在应用状态中,并将其保存下来,以便应用重新启动时恢复布局。 指针悬停在分隔条上时会显示调整大小的光标。
无障碍
辅助技术把分隔条看作一个名为 "Divider" 的分隔器(splitter),它可以 获得焦点并用方向键移动。