#10263·lvgl

Lv obj set style bg color () 应跳过重画吗 ?

作者: Bryght-Labs-Richard创建于 2026年6月15日更新于 2026年9月2日
标签💡 Ideadrawstyle

提出问题

我注意到,“lv obj clear flag(obj,LV OBJ FLAG HIDDEN)”和“lv obj clear-state(ui YourClockTime,LV STAE DISABLED LV STAE USER 1 LV STAE USER 2 LV STAE USER 3 LV STAE USER 4)”等多个部件操作,如果部件目前没有这些旗帜或状态,则不会重新绘制部件。

当编写代码以更新部件时, 当部件需要更改 d 时, 这样做相当方便 - 您每次可以调整旗子和状态, LVGL 只会在需要时绘制 。 一个例子是数字时钟,视所剩时间而定,它有各种字段,选项和背景颜色.

但我也注意到,v9.3.0, “lv obj set style bg color(obj, a color that changes rarely, LV PART MAIN LV STATE DEFAULT)”似乎造成每个相框重划, 即使颜色与上个相框相同。

建议

“ lv obj set style bg color() ” 在指定颜色匹配时成为禁用是否合理 ?

或者,在应用层做这种逻辑更好,比如:

lv color t prev color = lv obj get style bg color(obj, LV PART MAIN); (中文(简体) ).
如果( prev  color! = 新的  color) {
lv obj  set style bg color(obj, LV PART MAIN, 新- color); 互联网档案馆的存檔,存档日期2011-12-02.
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?