KDocs 研发资料库
  • 屏融合应用方案入口汇总
  • JL701N穿戴客述问题FAQ
  • JL701N穿戴类补丁list
  • 手表软件调试
  • JL701手表硬件设计注意事项 总结
  • 手表烧录_升级工具说明
  • 手表量产相关
  • 生产烧录KEY及代码和升级代码
  • AC695N系列手表SDK开发指南
  • JL7012A手表-SDK入门指南V1.0
  • 穿戴手表JL701N-入门到进阶开发指导
  • 彩屏充电仓JL701N LVGL入门到进阶指导文档
  • AC695N手表软硬件问题整理
  • JL701N手表软硬件问题整理
  • 701n手表SDK共性问题汇总
  • UI效果参考demo文档
  • 屏幕触摸驱动相关参考
  • 穿戴类支付宝支付流程
  • AC701N_PMU_介绍
  • 经典蓝牙相关接口说明
  • music应用详细设计说明书
  • music_player接口设计说明文档
  • PO声测试以及处理方法
  • DAC性能测试指南
  • 杰理串口升级规范
  • AC696N串口升级说明
  • AC695N系列手表UI开发指南
  • AC695N添加升级UI说明文档.
  • UI布局工具使用说明
  • UI接口设计说明书
  • UI工具快速使用说明
  • 701N_UI编辑工具用户手册
  • UI工程源文件升级工具使用说明
  • 701N屏幕驱动配置说明
  • JL701N 2D图形硬件加速接口使用说明
  • JL701_watch常用例子参考
  • JL_WATCH_SDK UI相关工具使用文档
  • 智能手表音频 设计调试手册 V1.2
  • AC695X_AC696X_AD697X 常见通话问题处理参考资料
  • 701手表 PCBA产测工具使用说明书 V1.0
  • 杰理定频问题排查2021.1.26
  • BQB5.4 20231007
  • 各类概率性死机调试解决指南
  • 不开机问题处理汇总(仅供参考)
  • 蓝牙搜索不到问题处理汇总(仅供参考)
  • 样机发烫(仅供参考)
  • 蓝牙音乐卡顿问题处理汇总(仅供参考)
  • 充电问题处理汇总(仅供参考)
  • 触摸问题处理汇总(仅供参考)
  • 功耗调试指导
  • JL701N穿戴客述问题FAQ
  • 701N 开发板新屏幕驱动修改
  • AC701 nandflash A8图片显示问题
  • 支付宝乘车码接入资料
  • 多国语言及字库使用指南
  • 查看C程序Flash 和RAM 资源占用说明文档
  • 701N_SDK3.0.1_OPUS_OGG 编解码
  • 蓝牙在线调eq说明
  • BR EDR BLE 蓝牙性能测试配置方法_
  • BLE-HID
  • BLE-HID 调试文档
  • 【问题】701v301外置flash播放wts提示音
  • 本地录音开启及调试
  • 死机分析
  • 表盘传输APP层的压缩算法
  • 功能模版:JL701_V301_UI资源使用FAT文件系统demo
  • JL7013+4G CAT1 参考设计原理图
  • 吾爱4G模组+JL701接口说明
  • (电脑一拖多)手表升级dongle工具使用补充说明
  • 蓝牙接口使用说明
  • ble 开发流程
  • 彩屏仓功耗优化
  • 彩屏仓补丁list
  • 更新字库步骤
  • 支付宝硬件接入资料

页面快速左右滑动卡停补丁

📎 原始文档:https://www.kdocs.cn/l/clgcchJzBASc 页面快速左右滑动卡停补丁

现象描述:

在手电筒界面快速左右滑动时,可能会最终停在手电筒相邻的左右页面中并卡住不动,此时按键灭屏,锁屏,充电界面均正常,只有主循环页面无法左右滑动。

适用范围:

适用于彩屏仓v101版本sdk。

问题产生原因:

手电筒页面,打开灯光后会禁止页面滑动,关闭灯光后恢复滑动,但极端测试手法的情况下,如频繁快速滑动,可能会导致lvgl的消息没及时处理过来,等到手电筒切到左右两个页面后再触发禁止页面滑动,然而此时由于页面已经发生切换,没有对应的恢复滑动按钮,导致页面卡住而cpu还在跑的情况。

修改方式:

添加lv_tileview_scrollable_update函数定义,并将该函数添加到lv_all_status_update中调用即可。
image

// tileview滚动使能更新
void lv_tileview_scrollable_update()
{
    lv_obj_t *cur_page = lv_tileview_get_tile_act(guider_ui.screen_loop_tileview_loop);

    // 若当前页面不是手电筒页面且当前页面不为空则恢复滚动
    if(cur_page != guider_ui.screen_loop_tileview_loop_light && cur_page != NULL){
        lv_obj_add_flag(guider_ui.screen_loop_tileview_loop, LV_OBJ_FLAG_SCROLLABLE); // 取消滚动
    }
}


void lv_all_status_update()
{
    lv_battery_status_update();
    lv_vloume_status_update();
    lv_time_status_update();
    // lv_eq_status_update();
    // lv_anc_status_update();

    // 闹钟状态更新
    lv_alarm_status_update();
    
    lv_music_status_update();
    lv_backlight_status_update();

    // 蓝牙状态最后更新
    lv_ble_status_update();
    lv_bt_status_update();

    // 是否在充电
    lv_charging_status_update();

    lv_call_status_update();

    // 是否需要设置滚动
    lv_tileview_scrollable_update();
}

一种比较简单的方式是直接在主定时器循环中轮询当前页面值,如果不是手电筒界面则恢复页面滑动,若有其他页面需要禁止滑动,可以根据需求重写lv_tileview_scrollable_update函数,也可以在切换到手电筒左右相邻两个页面时接触页面滑动。