055、LVGL基础控件:开关(Switch)

055、LVGL基础控件:开关(Switch) LVGL基础控件:开关(Switch)上周帮一个做智能家居的兄弟调UI,他遇到个诡异现象:开关控件在触摸时偶尔会卡在半开半合的状态,动画走到一半突然停住,必须再点一次才能复位。我让他把LV_USE_SWITCH这个宏打开,结果他说早就开了。后来远程看了他的代码,发现他在switch的回调函数里直接调了lv_obj_del()删除控件——这种操作就像在电梯门关到一半时突然拆门,不出问题才怪。开关控件的本质LVGL里的Switch本质上是一个带状态动画的滑块,底层继承自lv_bar(进度条)。它不像普通按钮那样只有按下和释放两个状态,而是维护了一个布尔值加上平滑过渡的动画队列。你看到的那个圆钮滑动效果,其实是LVGL的动画引擎在背后不断重绘。创建开关的代码极其简单:lv_obj_t*sw=lv_switch_create(lv_scr_act()