更多源码分析请访问:LVGL 源码分析大全
目录
- 1、概述
- 2、源码分析
- 3、APIs
-
- 3.1、lv_group_create
- 3.2、lv_group_del
- 3.3、lv_group_set_default
- 3.4、lv_group_get_default
- 3.5、lv_group_add_obj
- 3.6、lv_group_swap_obj
- 3.7、lv_group_remove_obj
- 3.8、lv_group_remove_all_objs
- 3.9、lv_group_focus_obj
- 3.10、lv_group_focus_next
- 3.11、lv_group_focus_prev
- 3.12、lv_group_focus_freeze
- 3.13、lv_group_send_data
- 3.14、lv_group_set_focus_cb
- 3.15、lv_group_set_edge_cb
- 3.16、lv_group_set_editing
- 3.17、lv_group_set_refocus_policy
- 3.18、lv_group_set_wrap
- 3.19、lv_group_get_focused
- 3.20、lv_group_get_focus_cb
- 3.21、lv_group_get_edge_cb
- 3.22、lv_group_get_editing
- 3.23、lv_group_get_wrap
1、概述
lv_group_t
是用于焦点管理的,将需要获取焦点的对像加入到同一个分组内,再将其通过 lv_indev_set_group
挂到指定的事件驱动中,就可以控制焦点了。而被加入的对象又可以通过焦点状态事件 LV_EVENT_FOCUSED
和 LV_EVENT_DEFOCUSED
事件来控制对象的焦点逻辑了。
2、源码分析
2.1、默认焦点分组
LVGL可以通过lv_group_set_default
设置默认的焦点分组。而使用此方法需要写在对象创建之前,这样后续创建的对象,都会携带上被设置的焦点分组了。节选关键代码如下:
// file src/core/lv_group.c
void