1.用法函数介绍
1.1创造滚轮
lv_obj_t * lv_roller_create(lv_obj_t * parent);
参数介绍:parent:父对象。
1.2 设置roller的选项
void lv_roller_set_options(lv_obj_t * obj, const char * options, lv_roller_mode_t mode)
参数介绍:obj:对象
options:设置滚轮内容,例子:"One\nTwo\nThree"
mode:LV_ROLLER_MODE_NORMAL:正常模式(结束时结束)
LV_ROLLER_MODE_INFINITE:无限模式
1.3设置roller 的可见行数
lv_roller_set_visible_row_count(lv_obj_t * obj, uint8_t row_cnt) ;
参数介绍:obj:对象
row_cnt:间距值。
1.4获取选中的选项
uint16_t lv_roller_get_selected(const lv_obj_t * obj);
参数介绍:obj:对象。
return:返回滚轮的id;
1.5所选选项的内容复制
void lv_roller_get_selected_str(const lv_obj_t * obj, char * buf, uint32_t buf_size);
参数介绍:obj:对象
buf:缓存区
size:尺寸
2.事件
LV_EVENT_VALUE_CHANGED
:值改变就会触发
3.Example
static void event_handler(lv_event_t * e)
{
lv_event_code_t code = lv_event_get_code(e);
lv_obj_t * obj = lv_event_get_target(e);
if(code == LV_EVENT_VALUE_CHANGED) {
char buf[32];
lv_roller_get_selected_str(obj, buf, sizeof(buf));
LV_LOG_USER("Selected month: %s\n", buf);
}
}
/**
* An infinite roller with the name of the months
*/
void lv_example_roller_1(void)
{
lv_obj_t *roller1 = lv_roller_create(lv_scr_act());
lv_roller_set_options(roller1,
"January\n"
"February\n"
"March\n"
"April\n"
"May\n"
"June\n"
"July\n"
"August\n"
"September\n"
"October\n"
"November\n"
"December",
LV_ROLLER_MODE_INFINITE);
lv_roller_set_visible_row_count(roller1, 4);
lv_obj_center(roller1);
lv_obj_add_event_cb(roller1, event_handler, LV_EVENT_ALL, NULL);
}