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整个屏幕页面;
本文来自博客园,作者:xjxcxjx,转载请注明原文链接:https://www.cnblogs.com/xjxcxjx/p/15980380.html,谢绝CSDN转载!