事件处理回调函数
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
}
运行效果