我使用EFL库为Tizen平台开发应用程序。我需要实现硬件按钮"返回"的事件处理程序。
在原生Tizen API中,它做得非常简单。但我不知道我怎么能在EFL图书馆做到这一点。
我尝试使用以下方式:
evas_object_event_callback_add( obj, EVAS_CALLBACK_KEY_DOWN, on_key_down, NULL );
但它不起作用。
有人能帮我吗?
代替EVAS_CALLBACK_KEY_DOWN and
EVAS_object_event_CALLBACK_add()`,
- 使用
ea_object_event_callback_add
- 使用
EA_CALLBACK_BACK
作为后退按钮 EA_CALLBACK_MORE
用于菜单按钮但是你需要包括一个头文件,不幸的是我忘记了头文件名efl util.h之类的东西,你可以在头文件中进行搜索
AFAIK问题是EFL使用队列来处理事件。这意味着回调是一个接一个地调用的:第一个回调应该为要运行的同一事件的下一个回调返回PASS_ON(或其他东西)。
因此,可能还有另一个回调不允许调度事件。
尝试
Ecore_Event_Handler *handler;
handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, hardware_key_down_cb, NULL);
在hardware_key_down_cb()回调函数中,检查密钥名称"XF86Stop"Ecore_Event_key以处理返回密钥事件。
使用eext_object_event_callback_add(Evas_object*obj,eext_callback_type类型,callback_fun,NULL)在回调函数中,您可以编写您的需求