LVGL学习笔记 20 - 滚轮Roller

目录

1. Parts

2. 设置

2.1 设置选项

2.2 设置可见行

2.3 设置选中项

3. 样式

3.1 设置选项之间的间隔

3.2设置滚动效果时间

3.3 设置选中项的字体

3.4 设置选中项的字符串颜色


滚轮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);

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值