下拉列表部件(lv_dropdown)
下拉列表部件常用于多选一的场景,点击后可展现多个选项。

下拉列表部件组成部分:
- 按钮(BUTTON)
- 列表(LIST)
API函数
- 创建下拉列表部件
lv_obj_t *dd = lv_dropdown_create( parent );
- 设置选项内容
//options:填写选项,一般是字符串形式且需要换行符,否则会将多个选项组合成一个
lv_dropdown_set_options(lv_obj_t * obj, const char * options); /* 设置选项 */
lv_dropdown_set_options_static(lv_obj_t * obj, const char * options); /* 设置选项 (静态)*/
lv_dropdown_add_option(lv_obj_t * obj, const char * option, uint32_t pos); /* 添加选项,索引从0开始 */
- 设置当前所选项
lv_dropdown_set_selected(lv_obj_t * obj, uint16_t sel_opt) /* 注意:索引从0开始 */
- 事件触发
lv_obj_add_event_cb(dd, my_event_cb, LV_EVENT_VALUE_CHANGED, NULL); /* 添加事件 */
- 获取选项内容
lv_dropdown_get_selected(const lv_obj_t * obj); /* 获取索引(序号) */
//lv_dropdown_get_selected_str()中的obj一般是回调事件中lv_event_get_code(e)的返回值
//buf字符串里面存放的是下拉列表的选项的字符形式,如选项a,buf里面就是字符'a'
char buf[10];
lv_dropdown_get_selected_str(const lv_obj_t * obj, char * buf, uint32_t buf_size)/* 获取选项文本 */
- 设置方向和图标
lv_dropdown_set_dir(dd, LV_DIR_RIGHT); /* 设置列表展开方向 */
//此处的图标是下拉列表的方向图标(按照个人喜好随意选择)
lv_dropdown_set_symbol(dd, LV_SYMBOL_RIGHT); /* 设置图标 */
滚轮部件(lv_roller)
滚轮部件常用于多选一的场景,它以滚轮的形式来展现多个选项。

滚轮部件组成部分:
- 主体(LV_PART_MAIN)
- 选项框(LV_PART_SELECTED)
API函数
- 创建滚轮部件
lv_obj_t *roller= lv_roller_create( parent );
- 设置选项间隔
lv_obj_set_style_text_line_space(roller, 30, LV_STATE_DEFAULT);
- 设置选项内容、滚动模式
lv_roller_set_options(roller, “a\nb\nc\nd”, LV_ROLLER_MODE_NORMAL); /* 正常模式 */
- 设置当前所选项
lv_roller_set_selected(roller, 3, LV_ANIM_ON);
- 设置可见行数
lv_roller_set_visible_row_count(roller, 2);
- 获取选项内容
lv_roller_get_selected(roller); /* 获取索引 */
char buf[10];
lv_roller_get_selected_str(roller, buf, sizeof(buf)); /* 获取选项文本 */
滑块部件(lv_slider)
滑块部件常用于调节某个参数的值,它以直线滑动的形式来修改数值。

滑块部件组成部分:
- 主体(LV_PART_MAIN)
- 指示器(LV_PART_INDICATOR)
- 旋钮(LV_PART_KNOB)
API函数
- 创建滑块部件
lv_obj_t *slider = lv_slider_create( parent );
- 设置大小、当前值、范围值
lv_obj_set_size(slider, 20, 200); /* 高度>宽度时,滑块为纵向 */
lv_slider_set_value(slider, 50, LV_ANIM_OFF); /* 设置当前值 */
lv_slider_set_range(slider, -100, 100); /* 设置范围值 */
- 获取当前值
lv_slider_get_value(slider);
- 模式设置
lv_slider_set_mode(slider, LV_SLIDER_MODE_...);
- 设置、获取左值
lv_slider_set_left_value(slider, 20, LV_ANIM_OFF); /* 设置左值 */
lv_slider_get_left_value(slider); /* 获取左值 */