在lvgl中,清屏函数用于将屏幕上的所有图像对象清除,以便绘制新的界面。 lvgl中提供了两个清屏函数,分别是`lv_obj_clean(`和`lv_obj_del(`。这两个函数的作用都是清除屏幕上的所有对象,但有一些细微的区别。 1. `lv_obj_clean(`函数用于清除屏幕上的所有对象,但保留屏幕。 ```c void lv_obj_clean(lv_...
删除操作通常是即时的,并且lv_obj_del函数没有返回值来指示成功或失败(它依赖于传入的对象指针是否有效)。因此,确认删除通常意味着在删除后不再引用该对象,并且界面上不再显示它。 更新界面或状态以反映删除操作的结果(如果需要): 如果删除列表按钮后需要更新界面(例如,重新排列其他按钮或更新某些显示信息),则应在删...
有了这个函数,实际上页面切换就很简单了,对于每个页面来说,一个lv_obj_t基础对象表示一个页面,我们只需要让所有的组件都以这个页面lv_obj_t为父类即可,然后用lv_scr_load_anim函数进行加载就行了。 隐藏页面切换法? 隐藏页面切换法就是调用lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN)和lv_obj_clear_flag(...
void lv_obj_del(lv_obj_t * obj); lv_obj_del 将立即删除该对象。如果出于某种原因不能立即删除该对象,则可以使用 lv_obj_del_async(obj) ,例如,如果要删除子对象的 LV_EVENT_DELETE 信号中对象的父对象,这很有用。 我们可以使用 lv_obj_clean 删除对象的所有子对象(但不会删除对象本身): void lv_o...
此时,我们可以在切换之前,释放之前屏幕上的内存,注意,用的是函数lv_obj_clean,而不是lv_obj_del,因此并不是删除原来的屏幕。当然,也可以选择删除。 总结上面的内容,得出两种常用的切换页面的方式: 1 所有的页面共用一个活动屏幕,然后一起创建出来,接着用隐藏和显示来切换,此时,页面越多,则内存占用越多; ...
(mostly system) /// app main loop /// while (!app_break) { lv_task_handler(); usleep(PERIOD_TASK_MAIN * 1000); } app_end(); /// lv_obj_del(app_scr); // delete ‘app_scr and all of its children <=== !!! ///
lv_refr_obj_and_children函数就体现了一个个obj绘制,从底层开始绘制,一直绘制到顶层。 v_refr_obj_and_children函数就体现了一个个obj绘制,从底层开始绘制,一直绘制到顶层。因为顶层为NULL。 par=lv_obj_get_parent(top_p);while(par!=NULL){bool go=false;uint32_t i;for(i=0;i<lv_obj_get_child...
■ LVGL-(lv_obj_t)样式 ■ 设置样式函数 ■ 设置样式枚举 ■ 设置样式(大小,位置,背景,轮廓,边框,阴影,其他) voidlv_style_set_bg_color(lv_style_t*style,lv_color_tvalue);//设置背景颜色voidlv_style_set_bg_color_filtered(lv_style_t*style,lv_color_tvalue);//设置背景过滤颜色voidlv_style_...
界面重叠的问题应该是界面切换后没有将上个页面删除导致的, lv_obj_del,切换前应该用这个函数先kill...
用户需要删除一个对象,可使用以下几个函数: lv_obj_del(lv_obj_t*obj);// 立即删除一个对象,并该对象的子类一起删除lv_obj_del_async(lv_obj_t*obj);// 下一次执行 lv_timer_handler 后删除对象lv_obj_clean(lv_obj_t*obj);// 立刻删除一个对象的全部子类lv_obj_del_delayed(lv_obj_t*...