按键处理逻辑
事件冒泡
+ 在 lvgl V8.3 中,事件冒泡默认是关闭的。 + 在之前的版本中,事件冒泡是默认开启的 + 可以通过设置父对象的布局属性 LV_LAYOUT_GRID 或者 LV_LAYOUT_FLEX 来开启默认的事件冒泡(未验证) + 开启事件冒泡 lv_obj_add_flag(ui->seting_btn, LV_OBJ_FLAG_EVENT_BUBBLE); (已验证) + 手动设置回调函数并返回 true 来传递事件 返回 false 来阻止传递
按键处理 有多种方式
+ 第一 系统默认组 部分组件支持 + 第二 自定义组 往组里添加需要控制的元素 按键自动发送到组 大部分按键自动处理 - 系统的按键事件流程 - lv_indev.c indev_keypad_proc() 不同的输入类型 处理流程略有不同 - 预定义键: - LV_KEY_NEXT 聚焦到下一个对象 - LV_KEY_LEFT 减少值或向左移动 - LV_KEY_RIGHT 增加值或向右移动 - LV_KEY_ENTER 触发 + 第三 所有按键发送到一个自定义事件 统一处理所有按键事件 - lv_group_focus_next 函数 焦点移动到下一个对象上 - lv_group_focus_prev 函数 焦点移动到上一个对象上 - lv_group_send_data 函数 将键码发送到【组】 内部将转发 按键事件 到当前选中(聚焦)对象 - lv_event_send 函数 将 按键事件 直接发送到任意对象
评论0
暂时没有评论