直接上代码
lv_obj_t * header;
lv_obj_t * main_win;
static void init_win(char win_head_str)
{
lv_obj_t * win = lv_win_create(lv_scr_act(),20);
/
一堆设置窗口的样式的代码
*/
header = lv_win_get_header(win);
/*
一堆设置标题的样式的代码
*/
lv_win_add_title(win,win_head_str)
main_win = lv_win_get_content(win);
/*
后续有以main_win为父级创建的控件及样式
*/
}
有个关于按键的回调函数
static void key_cb(void)
{
switch(key_value)
{
case 0:
lv_obj_del(main_win);
lv_obj_clean(main_win);
lv_obj_del(header);
lv_obj_clean(header);
init_win(“test1”);
break;
case 1:
lv_obj_del(main_win);
lv_obj_clean(main_win);
lv_obj_del(header);
lv_obj_clean(header);
init_win(“test2”);
break;
}
}
其中我通过按键来回切换这两个页面,但明明父级都被删除清理了,为何还会存在内存占用持续升高的问题,其中关于控件的每个样式都是通过lv_obj_set_style应用到相应的控件上的。
难道说通过lv_obj_set_style应用的样式和直接创建样式一样也会占用到资源,那又该如何彻底清理该内容呢。
希望有大佬解答