事件处理回调函数
static void back_event_handler(lv_event_t* e) { lv_obj_t* obj = lv_event_get_target(e); //获取对象产生的事件码 lv_obj_t* menu = lv_event_get_user_data(e);//获取产生事件的对象 if (lv_menu_back_btn_is_root(menu, obj)) { // 是否为菜单返回键 lv_obj_t* mbox1 = lv_msgbox_create(NULL, "Hello", "Root back btn click.",NULL, true);//创建带close按键的消息对话框 lv_obj_center(mbox1); //居中显示 } }
Simple Menu with root button
static void lv_example_menu_2(void) { lv_obj_t* menu = lv_menu_create(lv_scr_act()); // 创建menu对象 lv_menu_set_mode_root_back_btn(menu, LV_MENU_ROOT_BACK_BTN_ENABLED); // 使能根菜单项返回按键 lv_obj_add_event_cb(menu, back_event_handler, LV_EVENT_CLICKED, menu);// 注册菜单点击事件 lv_obj_set_size(menu, lv_disp_get_hor_res(NULL), lv_disp_get_ver_res(NULL));//设置大小 lv_obj_center(menu);//居中显示 lv_obj_t* cont; lv_obj_t* label; /*Create a sub page*/ lv_obj_t* sub_page = lv_menu_page_create(menu, NULL); // 创建菜单页面 cont = lv_menu_cont_create(sub_page); // 创建菜单cont容器 label = lv_label_create(cont); //在cont创建label lv_label_set_text(label, "Hello, I am hiding here"); // 设置菜单项显示内容 /*Create a main page*/ lv_obj_t* main_page = lv_menu_page_create(menu, NULL); // 创建菜单页面 cont = lv_menu_cont_create(main_page); // 创建菜单cont容器 label = lv_label_create(cont); //在cont创建label lv_label_set_text(label, "Item 1"); // 设置菜单项显示内容 cont = lv_menu_cont_create(main_page); // 创建菜单cont容器 label = lv_label_create(cont); //在cont创建label lv_label_set_text(label, "Item 2"); // 设置菜单项显示内容 cont = lv_menu_cont_create(main_page); // 创建菜单cont容器 label = lv_label_create(cont); //在cont创建label lv_label_set_text(label, "Item 3 (Click me!)"); //在cont创建label lv_menu_set_load_page_event(menu, cont, sub_page); // 设置点击cont对应的菜单项跳转到sub_page lv_menu_set_page(menu, main_page); // 设置菜单显示页main_page }
运行效果
