通過函數lv_obj_invalidate(OBJ)可以刷新對象OBJ的顯示。
但是實際使用過程中卻會存在問題。
使用PC模擬器能正常刷新的對象,在板子上就會非常卡。
這個應該是跟LVGL的刷新機制有關。
LVGL內核會把需要刷新的對象放在鏈表里遍歷刷新,理論上應該都能刷新到。但實際使用中就是有些對象刷不出來(實際上刷了,但是有殘影)。
舉個例子:
1 PANEL = lv_obj_create(lv_scr_act()); 2 btn = lv_btn_create(PANEL); 3 label = lv_label_create(btn);
上面的label距離屏幕就2層,但是如果直接刷新label 很可能會刷不出來。距離屏幕層級越遠,刷新越有可能出問題。
lv_obj_invalidate(label);
所以這里我們就要去刷新btn,或者干脆點直接刷新PANEL整個屏幕頁面;