开关 (Switch)

![switch.png](https://cos.easydoc.net/79463195/files/krtg4uv3.png) ## 示例代码 ```lua function event_handler(obj, event) if event == lvgl.EVENT_VALUE_CHANGED then print("State", lvgl.switch_get_state(obj)) end end sw1 = lvgl.switch_create(lvgl.scr_act(), nil) lvgl.obj_align(sw1, nil, lvgl.ALIGN_CENTER, 0, -50) lvgl.obj_set_event_cb(sw1, event_handler) sw2 = lvgl.switch_create(lvgl.scr_act(), sw1) lvgl.switch_on(sw2, lvgl.ANIM_ON) lvgl.obj_align(sw2, nil, lvgl.ALIGN_CENTER, 0, 50) ``` ## 创建 开关的创建函数是 `lvgl.switch_create` ``` lvgl.switch_create(lvgl.scr_act(), nil) ``` ![开关.png](https://cos.easydoc.net/71161452/files/ksdk9lmm.png) ## 状态 开关最重要的就是状态设置以及获取了,状态设置主要是通过三个函数设置的,分别是: ```lua lvgl.switch_on -- 打开 lvgl.switch_off -- 关闭 lvgl.switch_toggle -- 切换 ``` 切换就是将开关设置为相反的状态,这三个函数设置状态时都可以选择是否显示动画。 状态获取函数就是 `lvgl.switch_get_state` 了,通过返回 `true` `false` 来告知用户当前的状态。 ```lua lvgl.switch_get_state(sw) ``` ## 事件 开关最常用的事件毫无疑问就是 `lvgl.EVENT_VALUE_CHANGED` 了。 ```lua function event_handler(obj, event) if event == lvgl.EVENT_VALUE_CHANGED then print("State", lvgl.switch_get_state(obj)) end end lvgl.obj_set_event_cb(sw, event_handler) ``` ![jdfw.gif](https://cos.easydoc.net/71161452/files/ksdkn9xa.gif) ## API ### lvgl.switch_create |调用|lvgl.switch_create(par, copy)| |-|-| |功能|创建一个开关对象| |返回|指向创建的开关的指针| |参数|| |par|指向对象的指针, 它将是新键对象的父对象| |copy|指向开关对象的指针, 如果不为 nil, 则将从其复制新对象| ### lvgl.switch_on |调用|lvgl.switch_on(sw, anim)| |-|-| |功能|打开开关| |参数|| |sw|指向微调框对象的指针| |anim|lvgl.ANIM_ON 用动画设置值。lvgl.ANIM_OFF 立即更改值| ### lvgl.switch_off |调用|lvgl.switch_off(sw, anim)| |-|-| |功能|关闭开关| |参数|| |sw|指向微调框对象的指针| |anim|lvgl.ANIM_ON 用动画设置值。lvgl.ANIM_OFF 立即更改值| ### lvgl.switch_toggle |调用|lvgl.switch_toggle(sw, anim)| |-|-| |功能|切换开关| |参数|| |sw|指向微调框对象的指针| |anim|lvgl.ANIM_ON 用动画设置值。lvgl.ANIM_OFF 立即更改值| ### lvgl.switch_set_anim_time |调用|lvgl.switch_set_anim_time(sw, anim_time)| |-|-| |功能|设置开关的动画时间| |参数|| |sw|指向滑动条对象的指针| |anim_time|动画时间(以毫秒为单位)。| ### lvgl.switch_get_anim_time |调用|lvgl.switch_get_anim_time(sw)| |-|-| |功能|获取开关设置的动画时间| |返回|开关的动画时间| |参数|| |sw|指向开关对象的指针| ### lvgl.switch_get_state |调用|lvgl.switch_get_state(sw)| |-|-| |功能|获取开关的状态| |返回|开关的状态| |参数|| |sw|指向开关对象的指针 [参考链接(C语言)](https://docs.lvgl.io/7.11/widgets/switch.html)