046、LVGL对象可见性与启用状态 LVGL对象可见性与启用状态:一次屏幕闪烁引发的血案上周调试一块基于STM32F429的智能家居面板,遇到一个诡异现象:点击“温度曲线”按钮后,图表控件闪了一下才显示出来,而旁边的“返回”按钮却纹丝不动。排查了两天,最后发现是对象可见性(lv_obj_set_hidden)和启用状态(lv_obj_set_disabled)的调用顺序搞反了。这种坑,不写下来对不起自己掉的头发。可见性:不是简单的“藏起来”LVGL里控制对象是否显示,用的是lv_obj_set_hidden(obj, true/false)。很多人以为这就是个“显示/隐藏”开关,但实际底层操作比想象中复杂。当hidden = true时,LVGL会把这个对象从渲染队列里彻底移除——注意是“移除”而不是“透明化”。这意味着:该对象不参与任何绘制操作,连背景都不画事件处理被完全跳过,触摸点击无效子对象也跟着一起消失,但父子关系依然保留我踩过的坑:在动画回调里动态切换隐藏状态,结果动画还没跑完对象就消失了,导致动画回调访问了已经被标记为不可见的对象,直接hardfault。正确做法是先停止动画,再改可见性。// 别这样写:动画还在跑就隐藏lv_a