目录
滚轮Roller实现的功能类似下拉列表,由lv_roller_create创建
roller = lv_roller_create(lv_scr_act());
lv_obj_align(roller, LV_ALIGN_CENTER, 0, 0);
1. Parts
滚轮有2个Part:LV_PART_MAIN和LV_PART_SELECTED。
lv_obj_set_style_bg_color(roller, lv_color_hex(0xFF0000), LV_PART_MAIN);
lv_obj_set_style_bg_color(roller, lv_color_hex(0xF00FF00), LV_PART_SELECTED);
2. 设置
2.1 设置选项
void lv_roller_set_options(lv_obj_t * obj, const char * options, lv_roller_mode_t mode)
参数mode有2个设置值:LV_ROLLER_MODE_NORMAL或LV_ROLLER_MODE_INFINITE,分别表示滚轮模式为普通模式或无限模式。
lv_roller_set_options(roller, "1\n2\n3\n4\n5\n6", LV_ROLLER_MODE_NORMAL);
lv_roller_set_options(roller, "1\n2\n3\n4\n5\n6", LV_ROLLER_MODE_INFINITE);
通过函数lv_roller_get_selected获取选中选项的索引值,通过函数lv_roller_get_selected_str获取选中选项的字符串。
2.2 设置可见行
void lv_roller_set_visible_row_count(lv_obj_t * obj, uint8_t row_cnt)
注意参数row_cnt的设置规则,比如设置为6(5个全显示加2个半显示)和7(7个全显示)的设置效果如下:
2.3 设置选中项
void lv_roller_set_selected(lv_obj_t * obj, uint16_t sel_opt, lv_anim_enable_t anim)
参数sel_opt对应选中项的索引值,anim的有效参数是LV_ANIM_ON和LV_ANOM_OFF,表示改变选中项时是否显示滚动过程。
3. 样式
3.1 设置选项之间的间隔
void lv_obj_set_style_text_line_space(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector)
间隔为5和10的对比:
注意,由于间隔的变化,导致可见行变了,要保持原来的可见行数,需要重新设置。
3.2设置滚动效果时间
void lv_obj_set_style_anim_time(struct _lv_obj_t * obj, uint32_t value, lv_style_selector_t selector)
参数value的单位是ms。例如设置为1秒滚动。
lv_obj_set_style_anim_time(roller, 1000, LV_PART_MAIN);
3.3 设置选中项的字体
通过改变字体凸显选中项。
lv_obj_set_style_text_font(roller, &lv_font_montserrat_24, LV_PART_SELECTED);
3.4 设置选中项的字符串颜色
lv_obj_set_style_text_color(roller, lv_palette_main(LV_PALETTE_ORANGE), LV_PART_SELECTED);