lv_list 列表控件是由一个作为背景的 page 页面和一些作为列表项的按钮构成的,其中的 每一个列表项按钮是由可选的左右俩部分构成,左侧是用来放图标的,右侧是用来放文本的,
具体的构成示意图如下所示:
直接拍运行效果:
代码如下:
void list_event_handler(lv_obj_t * obj, lv_event_t event)
{
if(event == LV_EVENT_CLICKED) {
printf("Clicked: %s\n", lv_list_get_btn_text(obj));
}
}
void list_test(void)
{
/*Create a list*/
lv_obj_t * list1 = lv_list_create(lv_scr_act(), NULL);
lv_obj_set_size(list1, 160, 400);
lv_obj_align(list1, NULL, LV_ALIGN_CENTER, 0, 0);
/*Add buttons to the list*/
lv_obj_t * list_btn;
list_btn = lv_list_add_btn(list1, LV_SYMBOL_FILE, "New");
lv_obj_set_event_cb(list_btn, list_event_handler);
list_btn = lv_list_add_btn(list1, LV_SYMBOL_DIRECTORY, "Open");
lv_obj_set_event_cb(list_btn, list_event_handler);
list_btn = lv_list_add_btn(list1, LV_SYMBOL_CLOSE, "Delete");
lv_obj_set_event_cb(list_btn, list_event_handler);
list_btn = lv_list_add_btn(list1, LV_SYMBOL_EDIT, "Edit");
lv_obj_set_event_cb(list_btn, list_event_handler);
list_btn = lv_list_add_btn(list1, NULL, "Save");
lv_obj_set_event_cb(list_btn, list_event_handler);
}
这个其实还好,点击之后可以有事件回调函数,具体的执行内容以及按下标志位可根据需求在事件回调函数里进行修改。