组件
滑块
沿轨道选择一个值或一个范围,支持键盘和指针。
ui.Slider 是 ui 外观的滑块,沿轨道选值,并负责拖动、步进和键盘。单个值是单个旋钮;High 让它成为一个范围。
volume := core.NewSignal(cx, 40.0)
ui.Slider{Value: volume.Get, OnChange: volume.Set, Min: 0, Max: 100, Step: 5, Label: "音量"}
范围
设置 High 和 OnHighChange 可以选择两个值。Value 是低端。LowLabel 和 HighLabel 为辅助技术命名两个旋钮。
price := core.NewSignal(cx, 20.0)
ceiling := core.NewSignal(cx, 80.0)
ui.Slider{
Value: price.Get, OnChange: price.Set,
High: ceiling.Get, OnHighChange: ceiling.Set,
Min: 0, Max: 100, Step: 1,
Label: "价格", LowLabel: "最低", HighLabel: "最高",
}
步进与值
Step 让值吸附;步进为 0 时可以取任意值。ValueText 改变辅助技术读出的值,Disabled 停用它。
ui.Slider{Value: speed.Get, OnChange: speed.Set, Min: 0.5, Max: 2, Step: 0.25, Label: "速度",
ValueText: func(v float64) string { return fmt.Sprintf("%g×", v) }}
行为
拖动跟随指针,并在移动时报告 OnChange。方向键按一步移动获得焦点的旋钮,Home 和 End 到两端,Page Up 和 Page Down 移动更远。Step 大于 0 时,ui.Slider 在轨道下标记最多 60 个刻度。
无障碍
滑块报告 RoleAdjustable、Label 和值;范围有两个旋钮,各自带标签。ValueText 替代数字被读出。键盘和屏幕阅读器的增减操作可以改变它。
平台
轨道由应用绘制,在所有平台上尺寸相同。按压、焦点和屏幕阅读器来自平台;触摸拖动与指针拖动使用相同的步进。