LVGL页面滚动与分页效果
一个让我熬夜的滚动问题
去年做智能家居中控屏项目,客户要求页面切换像手机桌面一样顺滑。我用了lv_page,结果在STM32F429上跑起来,滑动时CPU占用率飙到80%,触摸响应延迟明显。更诡异的是,快速滑动时页面会卡在中间位置,既不是上一页也不是下一页——这就是典型的滚动边界处理不当。
后来翻LVGL源码才发现,默认的滚动动画用了三次贝塞尔曲线,在低端MCU上计算量太大。今天这篇笔记,就把我踩过的坑和最终方案拆开揉碎讲清楚。
滚动容器选型:别被API名字骗了
LVGL里能做滚动的组件有三个:lv_page、lv_roller和lv_win。很多人一上来就用lv_page,但实际项目中我推荐用lv_cont配合lv_obj_set_style_pad_all实现自定义滚动。
// 别这样写:直接创建page然后往里塞东西
lv_obj_t * page = lv_page


