工作上遇到LVGL的问题 ,拿到一份现有的代码,点击之后悬浮球会像右边扩展出菜单。
目前结构
[悬浮界面] [悬浮球] [菜单] |
点击事件发生后 悬浮球会向右扩展出菜单 类似下面的效果
[悬浮球] [菜单] |
但是现在有需求,在某种情况下,使得悬浮球向左扩展。
[菜单] [悬浮球] |
解决方法
锚定整个悬浮界面的右边界。点击事件发生后让悬浮界面自右边界开始往左延伸。
lv_obj_set_x(main_obj, main_obj_x + length - w);
main_obj是主悬浮界面,也就是父对象.length指的是在为发生点击时间时,父对象应有的宽。(该函数是获取左上角X坐标 + length就是父对象开始的右边界 我们要让父对象向左移动)w则指要往左延伸的值,通过动画一点点往左延伸。