LVGL對象刷新


通過函數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整個屏幕頁面;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM