scrollbar控件¶
1. 使用场景¶
由于multlist在滑动时发送LV_EVENT_LIST_SCROLLBAR事件,事件中包含了页面的进度信息,所以只需创建控件处理该事件,便可显示进度值。进度条分为圆形和长条两种。
2. 功能介绍¶
2.1 接口说明¶
接口函数 |
功能说明 |
参数说明 |
|---|---|---|
lv_obj_t *lv_scrollbar_create(lv_obj_t *parent, uint16_t type) |
创建滚动条对象 |
parent:父对象指针;type:滚动条样式类型(LV_SCROLLBAR_SQUARE_TYPE=方形,LV_SCROLLBAR_CIRCLE_TYPE=圆形) |
void lv_scrollbar_update(lv_obj_t *scrollbar, lv_coord_t cur_pos, uint16_t ind_len, uint16_t tatol_len) |
更新滚动条位置和显示比例 |
scrollbar:滚动条对象指针;cur_pos:当前滚动位置;ind_len:滚动指示器长度;tatol_len:内容总长度 |
void lv_scrollbar_set_anim_time(lv_obj_t *parent, uint32_t hold_time, uint32_t disappear_time) |
设置滚动条显示/隐藏动画时长 |
parent:父对象指针;hold_time:滚动条保持显示的时长(ms);disappear_time:滚动条消失动画时长(ms) |
void lv_scrollbar_set_hidden(lv_obj_t *scrollbar, bool is_hidden) |
设置滚动条是否隐藏 |
scrollbar:滚动条对象指针;is_hidden:是否隐藏(true=隐藏,false=显示) |
3. 案例详解¶
3.1 案例代码¶
在初始化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);
}
3.2 效果展示¶
下面以list菜单进度条展示效果
4. 注意事项¶
无