什么是事件冒泡?Littlevgl中的事件冒泡是怎么样的?
事件冒泡(Event Bubbling)是指当一个元素上的事件被触发时,该事件会从最底层的元素开始逐级向上传播,直到最顶层的元素(通常是文档对象)被触发。
例如我们点击一个按钮时,就会产生一个click事件,但这个按钮本身可能不能处理这个事件,事件必须从这个按钮传播出去,从而到达能够处理这个事件的代码中,或者按钮的父级绑定有事件函数,当该点击事件发生在按钮上,按钮本身并无处理事件函数,则传播到父级去处理。
使用事件冒泡,首先要开启当前对象的事件冒泡,即LV_OBJ_FLAG_EVENT_BUBBLE
如果lv_obj_add_flag(obj, LV_OBJ_FLAG_EVENT_BUBBLE)被启用,所有事件也将被发送到对象的父对象。如果父节点也启用了LV_OBJ_FLAG_EVENT_BUBBLE,则事件将被发送到其父节点,依此类推。
注:如果在这个父子链上,某一个对象没有开启事件冒泡,那么事件就不会再继续往上冒泡。
事件的目标参数始终是当前目标对象,而不是原始对象。要获取原始目标,在事件处理程序中调用lv_event_get_original_target(e)。
官方原文
函数原型
例子