UI_QA
1.Q: 大字号有通过LVSF_FONT_REGISTER注册,但是显示异常
A:lv_freetype_set_parameter函数传参没有匹配该字号
2.Q: 怎么设置转场动画
A:每个page都有一个exit 和enter动画,可以在page得onstart指定播放类型,
如果需要对new page得类型进行指定,可以在app_trans_anim_init_cfg得default
类型里面去处理,可以参考mainmenu_trans_anim_config的具体用法,
需要注意得是lib会调用app_trans_animation_setup函数,此外overwrite_default_anim函数
会对过场动画进行效果上得适配,下图是过场动画定制得一个实例




3.Q: 52x平台息屏亮屏不跑resume,pause
A:需要调用gui_app_fwk_resume,gui_app_fwk_suspend
4.Q: label文本在换行的时候,会出现"g“ "y”等字符显示不全
A:保守方案可以在lv_label_refr_text函数对LV_LABEL_LONG_BREAK分支下的处理lv_obj_set_height做下补偿,
该现象在不同的字库下现象不一样,可以选择补偿一个较大的值
5.Q: 文本换行的时候出现换行异常
A:可以参考is_break_char该函数对中文得换行处理

6.Q: gif播放最后一帧播放不出来
A:可以打开gif_log,看下log,比较常见的是lv_gif_dec_next_frame该接口的使用有误,
由于以前的框架需要在该函数return 0的时候重新restart,后续的gif播放接口有修改,
直接lv_gif_dec_next_frame即可,不用手动restart
7.Q: A8格式的图片在recolor之后出现帧率低,且无法缩放
A:帧率低是由于lv_img_draw_core走的逐行渲染,无法缩放是由于逐行渲染处理缩放的流程有问题,
改用硬件处理,修改lv_img_decoder_built_in_open函数,返回map走硬件处理




8.Q: lv_roller原生控件在选择循环滚动模式LV_ROLLER_MODE_INIFINITE后出现动画跳变的问题
A:原生无限循环动画的实现机制是在滚动后再居中,修改方案在inf_normalize加上ext->sel_opt_id_ori = ext->sel_opt_id;

9.Q: 蜂窝菜单在惯性滑动后无法自动对齐,有个二次对齐的动作
A:修改如下


10.Q: NAND方案在画布控件canvas上画image出现帧率低
A:原因是图片的source没有load到ramfs里,可以按如图修改


11.Q: 开机不扣屏导致屏初始化异常,导致像素对齐参数设置有误,导致花屏,该现象在重启后正常
A:该现象在产线易出现,组装机器得时候不扣屏开机,导致屏初始化失败,重启后正常,可以按如图修改

12.Q: 屏te超时导致assert,怎么规避
A:如果不想要assert,可以修改如下,如果想在没有扣屏得情况下正常开机可以在menuconfig开机LCD_MISSING


13.Q: 跳转到root app得时候会出现没有过场动画,返回root app没有问题
A:需要确认下是不是设置过场动画之前page有被remove&free掉,
如果是root app在非pause状态下去跳转root app出现异常(没有过场动画),
可以修改如下:

14.Q: 关于常见app schedule断言
1.app_sche_assert("Recursive %d", mutex_lock->value);
:该断言是gui_app_xx_now等接口调用的地方,本身就在app_schedule() 里面,所以出现递归了,
常见得情况是在msg_handle函数里面调用此类接口
2.app_sche_assert("Found duplicated app [%s], %x", cur_app->id, cur_app);
:该断言是框架有检测到page重入,解决方案可以加标记位规避:entry创建page之前判断并置位,
page stop时复位,也可以更新app_schedule解决
3.app_sche_assert("Create page %s[%x] error, invalid app handler %x!")
:该断言是检测到page所在的app是个无效的app
15.Q: 模拟器用A8格式的图片出现crash
A:原因是模拟器的文件解码接口不支持A8格式,修改如下:

