立即注册 找回密码

微雪课堂

搜索

树莓派littlevGL系列教程:滑动列表控件(lv_roller)

2019-12-8 20:19| 发布者: imliubo| 查看: 6942| 评论: 0|原作者: IAMLIUBO

摘要: Hi,大家好,欢迎来到树莓派之littlevGL课堂,我们在上节课中学习了预加载控件(lv_preload),本节课带大家学习滑动列表控件,不知道大家还不记得我们之前学习的下拉列表控件,这里我们学习的滑动列表控件其实跟那个 ...
Hi,大家好,欢迎来到树莓派之littlevGL课堂,我们在上节课中学习了预加载控件(lv_preload),本节课带大家学习滑动列表控件,不知道大家还不记得我们之前学习的下拉列表控件,这里我们学习的滑动列表控件其实跟那个差不多类似,废话不多说!
一 有图有真相

二 代码分析
用户可下载"圆弧对象(lv_arc)的使用"文章末尾的Demo工程(点击我直接下载),参考圆弧对象(lv_arc)的使用文章,将以下Demo代码复制到Demo工程test.c文件空白处.然后在test.c文件的create_test()函数中增加roller_test()函数测试。
static void roller_event_handler(lv_obj_t * obj, lv_event_t event)
{
    if(event == LV_EVENT_VALUE_CHANGED) {
        char buf[32];
        lv_roller_get_selected_str(obj, buf, sizeof(buf));
        printf("Selected month: %s\n", buf);
    }
}


void roller_test(void)
{
    lv_obj_t *roller1 = lv_roller_create(lv_scr_act(), NULL);
    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_INIFINITE);

    lv_roller_set_visible_row_count(roller1, 4);
    lv_obj_align(roller1, NULL, LV_ALIGN_CENTER, 0, 0);
    lv_obj_set_event_cb(roller1, roller_event_handler);
}
这里我们创建了一个月份选择列表,用户可以通过滑动月份列表去选择月份,大家还记得每个月份之间的"\n"是什么作用吗?这个我们在之前的下拉列表教程中有讲过,可能大家现在发现有很多控件是类似的,没错,有部分控件是相似的,但是因为具有某些不太同的属性从而发展成了一个新的控件,没错"\n"的作用就是用来分割我们每一个选项的,当你不加这个分割符时所有选项会变成一个选项,不过这里这种方法要比我们前面学习的列表控件要简单多了,因为我们一次可以添加多个选项。
lv_roller_set_visible_row_count(roller1, 4);
这行代码的意思是,一次可以展示4个选项,你觉得展示窗口太小时,可以增大这个数字,这里我们也设置了回调函数,因为选择性的控件是有结果输出的,所以我们需要回调函数去处理结果,这里我们只在控制台打印了一下,大家可以根据自己的需求去处理选择结果。

OK,本节课就到这里,大家有没有学会呢?下节课我们学习滑动条控件(lv_slider),我们下节课再见!

239

顶一下

刚表态过的朋友 (239 人)

相关阅读

最新评论

Arduino
基础入门
OpenCV
littleGL

微雪官网|产品资料|手机版|小黑屋|微雪课堂. ( 粤ICP备05067009号 )

GMT+8, 2024-10-6 19:01 , Processed in 0.026481 second(s), 18 queries .

返回顶部