list的相关API - lightdong/LVGL_Study GitHub Wiki

/垂直布局的矩形,可以添加按钮和文本/

/part : mian scrollbar/

lv_obj_t *list1 = lv_list_create(lv_scr_act());
lv_obj_center(list1);
lv_obj_set_height(list1,180);
lv_obj_t *btn1;

/添加文本说明/

lv_obj_t *text1 = lv_list_add_text(list1,"SETTING");
lv_obj_set_height(text1,30);

/设置按钮按键的同时设置回调函数/

/由于是动态分配的所以可以一个变量来操作/

/添加列表,图标与文本一起添加/

btn1 = lv_list_add_btn(list1,LV_SYMBOL_WIFI,"wifi");
lv_obj_add_event_cb(btn1,list_btn_cb,LV_EVENT_CLICKED,list1);
btn1 = lv_list_add_btn(list1,LV_SYMBOL_BLUETOOTH,"bluetooth");
lv_obj_add_event_cb(btn1,list_btn_cb,LV_EVENT_CLICKED,list1);

/也可以在下面新建一个分支/

text1 = lv_list_add_text(list1,"AUDIO");
lv_obj_set_height(text1,30);
btn1 = lv_list_add_btn(list1,LV_SYMBOL_AUDIO,"audio");
lv_obj_add_event_cb(btn1,list_btn_cb,LV_EVENT_CLICKED,list1);
btn1 = lv_list_add_btn(list1,LV_SYMBOL_BATTERY_FULL,"battery");
lv_obj_add_event_cb(btn1,list_btn_cb,LV_EVENT_CLICKED,list1);

/获取列表按键文本/

printf("text : %s\n",lv_list_get_btn_text(list1,btn1));

/设置属性/

lv_obj_set_style_bg_color(list1,lv_color_hex(0x0000ff),LV_STATE_DEFAULT | LV_PART_SCROLLBAR);

/可以通过返回值获得的部件的指针来修改列表按钮的属性/

lv_obj_set_style_bg_color(btn1,lv_color_hex(0x00ff00),LV_STATE_DEFAULT | LV_PART_MAIN);

/列表按钮的回调函数/

static void list_btn_cb(lv_event_t *e){
    lv_obj_t *target = lv_event_get_target(e);
    lv_obj_t *user_data = (lv_obj_t *)lv_event_get_user_data(e);
    printf("text : %s\n",lv_list_get_btn_text(user_data,target));
}