Hi,大家好,欢迎来到树莓派之littlevGL课堂,我们在上节课中学习了预加载控件(lv_preload),本节课带大家学习滑动列表控件,不知道大家还不记得我们之前学习的下拉列表控件,这里我们学习的滑动列表控件其实跟那个差不多类似,废话不多说! 一 有图有真相 
二 代码分析 用户可下载"圆弧对象(lv_arc)的使用"文章末尾的Demo工程(点击我直接下载),参考圆弧对象(lv_arc)的使用文章,将以下Demo代码复制到Demo工程test.c文件空白处.然后在test.c文件的create_test()函数中增加roller_test()函数测试。 01 | static void roller_event_handler(lv_obj_t * obj, lv_event_t event) |
03 | if (event == LV_EVENT_VALUE_CHANGED) { |
05 | lv_roller_get_selected_str(obj, buf, sizeof (buf)); |
06 | printf ( "Selected month: %s\n" , buf); |
13 | lv_obj_t *roller1 = lv_roller_create(lv_scr_act(), NULL); |
14 | lv_roller_set_options(roller1, |
27 | LV_ROLLER_MODE_INIFINITE); |
29 | lv_roller_set_visible_row_count(roller1, 4); |
30 | lv_obj_align(roller1, NULL, LV_ALIGN_CENTER, 0, 0); |
31 | lv_obj_set_event_cb(roller1, roller_event_handler); |
这里我们创建了一个月份选择列表,用户可以通过滑动月份列表去选择月份,大家还记得每个月份之间的" \n"是什么作用吗?这个我们在之前的下拉列表教程中有讲过,可能大家现在发现有很多控件是类似的,没错,有部分控件是相似的,但是因为具有某些不太同的属性从而发展成了一个新的控件,没错" \n"的作用就是用来分割我们每一个选项的,当你不加这个分割符时所有选项会变成一个选项,不过这里这种方法要比我们前面学习的列表控件要简单多了,因为我们一次可以添加多个选项。 1 | lv_roller_set_visible_row_count(roller1, 4); |
这行代码的意思是,一次可以展示4个选项,你觉得展示窗口太小时,可以增大这个数字,这里我们也设置了回调函数,因为选择性的控件是有结果输出的,所以我们需要回调函数去处理结果,这里我们只在控制台打印了一下,大家可以根据自己的需求去处理选择结果。
OK,本节课就到这里,大家有没有学会呢?下节课我们学习滑动条控件(lv_slider),我们下节课再见! |