scrollbar控件

一、使用场景

  由于multlist在滑动时发送LV_EVENT_LIST_SCROLLBAR事件,事件中包含了页面的进度信息,所以只需创建控件处理该事件,便可显示进度值。进度条分为圆形和长条两种。

二、功能介绍

1. 使能进度条

//在初始化multlist后,只需创建进度条控件,并把multlist作为进度条的父控件,便可使能进度条
lv_scrollbar_create(multlist, LV_SCROLLBAR_SQUARE_TYPE);

三、案例详解

  在初始化multlist后,创建进度条控件实例,以list菜单为例

//1.删除回调流程
static void on_start(void)
{
    p_menu_list = (mainmenu_list_t *)app_calloc(1, sizeof(mainmenu_list_t));
    RT_ASSERT(p_menu_list);

    mainmenu_list_bg_dsc_init();

    lv_obj_t *multlist = lv_multlist_create(lv_scr_act());
    lv_obj_remove_style_all(multlist);
    lv_obj_set_size(multlist, LV_HOR_RES_MAX, LV_VER_RES_MAX);
    lv_obj_set_style_bg_color(multlist, LV_COLOR_BLACK, 0);
    lv_obj_set_style_bg_opa(multlist, 255, 0);
    lv_obj_center(multlist);
    lv_obj_refr_size(multlist);

    float para[] = { 0, 0, 0, 0.1f, 0.3f };
    lv_multlist_set_bezier_para(multlist, LV_VER_RES_MAX, para, para);
    lv_multlist_add_flag(multlist, LV_MULTLIST_FLAG_RESIDENCY | LV_MULTLIST_FLAG_SNAPSHOT);
    lv_multlist_set_gap(multlist, ICON_VER_GAP);
    lv_multlist_set_scrl_pad(multlist, LV_VER_RES_MAX >> 1, LV_VER_RES_MAX >> 1);
    lv_multlist_set_dir(multlist, LV_MULTLIST_DIR_VER);

    lv_multlist_set_item_cb(multlist, mainmenu_list_new_item_cb, NULL, NULL);

    builtin_app_read_all((builtin_app_read_app_cb)app_mainmenu_add_info, NULL, 0, 1, multlist);

    lv_multlist_set_springback(multlist, ICON_VER_GAP, ICON_VER_GAP);
    lv_multlist_align_center_to(multlist, 2, 0);

    p_menu_list->bg_list = multlist;
    lv_scrollbar_create(multlist, LV_SCROLLBAR_SQUARE_TYPE);
}

四、注意事项

  无