项目场景:
LVGL切换页面时,出现异常问题的总结。
这里假设有2个页面,一个页面是启动页面,一个是密码盘页面。都有几十个部件,包含样式,动画,事件等。使用squareline生成代码。
两个页面中都有一个按钮可以互相切换到另外一个页面 。作者已经运行测试过了,切换页面,同时清除内存,再也没有出现内存问题而重启复位或者卡死。
问题描述
来回切换页面,会出现异常并重启,怎么解决呢。上一篇提到切换页面时提前手动删除动画
下面贴出改动前的代码:
按键控件动画函数:
void SecBtnFlash_Animation(lv_obj_t * TargetObject, int delay)
{
ui_anim_user_data_t * PropertyAnimation_0_user_data = lv_mem_alloc(sizeof(ui_anim_user_data_t));
PropertyAnimation_0_user_data->target = TargetObject;
PropertyAnimation_0_user_data->val = -1;
lv_anim_t PropertyAnimation_0;
lv_anim_init(&PropertyAnimation_0);
lv_anim_set_time(&PropertyAnimation_0, 100);
lv_anim_set_user_data(&PropertyAnimation_0, PropertyAnimation_0_user_data);
lv_anim_set_custom_exec_cb(&PropertyAnimation_0, _ui_anim_callback_set_opacity);
lv_anim_set_values(&PropertyAnimation_0, 0, 255);
lv_anim_set_path_cb(&PropertyAnimation_0, lv_anim_path_linear);
lv_anim_set_delay(&PropertyAnimation_0, delay + 0);
lv_anim_set_deleted_cb(&PropertyAnimation_0, _ui_anim_callback_free_user_data);
lv_anim_set_playback_time(&PropertyAnimation_0, 1200);
lv_anim_set_playback_delay(&PropertyAnimation_0, 0);
lv_anim_set_repeat_count(&PropertyAnimation_0, 0);
lv_anim_set_repeat_delay(&PropertyAnimation_0, 0);
lv_anim_set_early_apply(&PropertyAnimation_0, false);
lv_anim_start(&PropertyAnimation_0);
}
切换页面函数:
//Delete current screen和Free memory of current screen before loading new screen
void _ui_
标签:动画,anim,user,lv,set,内存,PropertyAnimation,LVGL,页面
From: https://blog.csdn.net/bababa5652/article/details/139507586