使用的LVGL版本:v8.2
- 创建一个对象,并设置其属性
// 创建一个对象
obj = lv_obj_create(lv_scr_act());
lv_obj_set_pos(obj, 100, 100);
lv_obj_set_size(obj, 500, 500);
- 为对象设置事件回调函数
// 设置长按事件回调函数
lv_obj_add_event_cb(obj, press_event_cb, LV_EVENT_ALL, NULL);
- 编写事件处理回调函数
static void press_event_cb(lv_event_t *event)
{
lv_event_code_t event_code = lv_event_get_code(event);
if(event_code == LV_EVENT_LONG_PRESSED) {
// 创建弹出框对象
// 创建按钮对象
popup = lv_btn_create(obj);
lv_obj_set_size(popup, 200, 40);
lv_obj_align(popup,LV_ALIGN_CENTER, 0, 0);
// 设置按钮文本
lv_obj_t * label = lv_label_create(popup);
lv_label_set_text(label, "Button");
// 显示弹出框
lv_obj_clear_flag(popup, LV_OBJ_FLAG_HIDDEN);
}
else if(event_code == LV_EVENT_SHORT_CLICKED) {
// 隐藏弹出框
if(popup != NULL)
lv_obj_add_flag(popup, LV_OBJ_FLAG_HIDDEN);
}
}
- 实现效果:
- 当长按obj对象时
- 当再短按obj对象时
按钮消失,这只是一个简单的实现对象点击事件处理的方法,可以基于此实现更复杂的页面处理。