• 合宙Air724UG LuatOS-Air LVGL API控件--下拉框 (Dropdown)


    下拉框 (Dropdown)

    dropdown.png


    在显示选项过多时,可以通过下拉框收起多余选项。只为用户展示列表中的一项。

    示例代码

    1. -- 回调函数
    2. event_handler = function(obj, event)
    3. if (event == lvgl.EVENT_VALUE_CHANGED) then
    4. print("Option:", lvgl.dropdown_get_symbol(obj))
    5. end
    6. end
    7. -- 创建下拉框
    8. dd = lvgl.dropdown_create(lvgl.scr_act(), nil)
    9. lvgl.dropdown_set_options(dd, [[Apple
    10. Banana
    11. Orange
    12. Cherry
    13. Grape
    14. Raspberry
    15. Melon
    16. Orange
    17. Lemon
    18. Nuts]])
    19. -- 设置对齐
    20. lvgl.obj_align(dd, nil, lvgl.ALIGN_IN_TOP_MID, 0, 20)
    21. lvgl.obj_set_event_cb(dd, event_handler)

    创建

    通过函数 dropdown_create 可以创建下拉列表控件。

    dd = lvgl.dropdown_create(lvgl.scr_act(), nil)
    

    添加选项

    列表中的选项是通过 dropdown_set_options 添加的,通过传入一整个字符串设置的,选项之间是依靠换行符分割的,需要注意的是,如果使用 [[ ]] 这种方式表示字符串的话,左边不要留空白缩进。

    1. lvgl.dropdown_set_options(dd, [[Apple
    2. Banana
    3. Orange
    4. Cherry
    5. Grape
    6. Raspberry
    7. Melon
    8. Orange
    9. Lemon
    10. Nuts]])

    image.png


    设置完成后也可以向其中插入选项:

    lvgl.dropdown_add_option(dd, "aa\nbb\ncc", 2)
    

    aa.png

    设置

    下拉框可以设置的选项有:

    展开方向

    列表展开方向的设置函数是 dropdown_set_dir,下面我们分别设置 上 下 左 右 四个方向来看下显示效果。
    下拉框在上面展开

    lvgl.dropdown_set_dir(dd, lvgl.DROPDOWN_DIR_UP)
    

    image.png


    下拉框在下面展开

    lvgl.dropdown_set_dir(dd, lvgl.DROPDOWN_DIR_DOWN)
    

    image.png

    下拉框在左边展开

    lvgl.dropdown_set_dir(dd, lvgl.DROPDOWN_DIR_LEFT)
    

    image.png

    下拉框在右边展开

    lvgl.dropdown_set_dir(dd, lvgl.DROPDOWN_DIR_RIGHT)
    

    image.png

    小图标

    下拉框旁边的小图标也是可以更改的,不光可以是向下拉的小箭头,有关符号的内容可以参考图片章节。

    lvgl.dropdown_set_symbol(dd, "\xef\x80\x81")
    

    image.png


    我们可以看下其他部分小图标,完整部分参考图片章节。

    1. sym = {
    2. "\xef\x80\x81",
    3. "\xef\x80\x88",
    4. "\xef\x80\x8b",
    5. "\xef\x80\x8c",
    6. "\xef\x80\x8d",
    7. "\xef\x80\x91",
    8. "\xef\x80\x93",
    9. "\xef\x80\x95",
    10. "\xef\x80\x99",
    11. "\xef\x80\x9c",
    12. "\xef\x80\xa1",
    13. "\xef\x80\xa6",
    14. "\xef\x80\xa7",
    15. "\xef\x80\xa8",
    16. }
    17. for i=1, #sym do
    18. lvgl.dropdown_set_symbol(dd, sym[i])
    19. sys.wait(1000)
    20. end

    jdfw3.gif

    列表框高度

    展示出的列表项是根据页面大小自动展示的,但是列表高度也是可以手动设置的。

    lvgl.dropdown_set_max_height(dd, 100)
    

    image.png

    控制

    除了可以手动点击操作以外,下拉框也可以通过 API 进行操作,展开下拉框,收起下拉框,选择等操作。

    1. while true do
    2. sys.wait(1000)
    3. lvgl.dropdown_open(dd)
    4. lvgl.dropdown_set_selected(dd, math.random(1, 8))
    5. sys.wait(1000)
    6. lvgl.dropdown_close(dd, lvgl.ANOM_OFF)
    7. end

    这个控件并没有被点击,完全是依靠 API 展开随机设置的。

    jdfw.gif

    事件

    可以通过 lvgl.EVENT_VALUE_CHANGED 消息,获取选项的 ID。

    1. -- 回调函数
    2. event_handler = function(obj, event)
    3. if (event == lvgl.EVENT_VALUE_CHANGED) then
    4. print("Option:", lvgl.dropdown_get_symbol(obj))
    5. end
    6. end
    7. lvgl.obj_set_event_cb(dd, event_handler)

    jdfw2.gif

    API

    lvgl.dropdown_create

    调用lvgl.dropdown_create(par, copy)
    功能创建下拉框对象
    返回指向创建的下拉框对象的指针
    参数
    par指向对象的指针, 它将是新下拉框的父对象
    copy指向下拉框对象的指针, 如果不为 nil, 则将从其复制新对象

    lvgl.dropdown_set_options_static

    调用lvgl.dropdown_set_options_static(dd, options)
    功能在字符串的下拉列表中设置选项
    参数
    dd下拉列表对象的指针
    options通过换行分割的设置选项文本

    lvgl.dropdown_add_option

    调用lvgl.dropdown_add_option(dd, options, pos)
    功能将选项从字符串添加到下拉框中
    参数
    dd下拉框对象的指针
    option字符串选项
    pos插入位置,从 0 开始

    lvgl.dropdown_set_selected

    调用lvgl.dropdown_set_selected(dd, sel_opt)
    功能设置所选项
    参数
    dd下拉框对象的指针
    sel_opt所选选项的编号,从 0 开始。

    lvgl.dropdown_set_dir

    调用lvgl.dropdown_set_dir(dd, dir)
    功能设置下拉框的方向
    参数
    dd指向下拉框对象的指针
    dirlvgl.DROPDOWN_DIR_LEFT
    lvgl.DROPDOWN_DIR_RIGHT
    lvgl.DROPDOWN_DIR_TOP
    lvgl.DROPDOWN_DIR_BOTTOM

    lvgl.dropdown_set_max_height

    调用lvgl.dropdown_set_max_height(dd, h)
    功能设置下拉框的最大高度
    参数
    dd指向下拉框的指针
    h最大高度

    lvgl.dropdown_set_symbol

    调用lvgl.dropdown_set_symbol(dd, sign)
    功能设置箭头或其他 sign, 以在关闭下拉框时显示
    参数
    dd下拉框对象的指针
    symbol类似 lvgl.SYMBOL_DOWN 这样的字符

    lvgl.dropdown_set_show_selected

    调用lvgl.dropdown_set_show_selected(dd, show)
    功能设置下拉框是否突出显示最后选择的选项并显示其文本
    参数
    dd指向下拉框对象的指针
    showtrue 显示, false 不显示

    lvgl.dropdown_get_text

    调用lvgl.dropdown_get_text(dd)
    功能获取下拉框的文本
    返回文字字串
    参数
    dd指向下拉框对象的指针

    lvgl.dropdown_get_options

    调用lvgl.dropdown_get_options(dd)
    功能获取下拉框的选项
    返回下拉框选项字符串
    参数
    dd下拉框对象的指针

    lvgl.dropdown_get_selected

    调用lvgl.dropdown_get_selected(dd)
    功能获取选择的选项
    返回所选选项的 ID
    参数
    dd下拉框对象的指针

    lvgl.dropdown_get_option_cnt

    调用lvgl.dropdown_get_option_cnt(dd)
    功能获取选项总数
    返回列表中的选项总数
    参数
    dd下拉框对象的指针

    lvgl.dropdown_get_max_height

    调用lvgl.dropdown_get_max_height(dd)
    功能获取固定高度值
    返回打开下拉框时的高度 (0
    参数
    dd指向下拉框对象的指针

    lvgl.dropdown_get_symbol

    调用lvgl.dropdown_get_symbol(dd)
    功能在下拉框绘制的 sign
    返回sign 或 nil (如果未启用)
    参数
    dd下拉框对象的指针

    lvgl.dropdown_get_dir

    调用lvgl.dropdown_get_dir(dd)
    功能获取列表展开方向
    返回列表展开方向
    参数
    dd下拉框对象的指针

    lvgl.dropdown_open

    调用lvgl.dropdown_open(dd)
    功能展开下拉框
    参数
    dd下拉框对象的指针

    lvgl.dropdown_close

    调用lvgl.dropdown_close(dd)
    功能关闭(折叠)下拉框
    参数
    dd下拉框对象的指针
    anim_enlvgl.ANIM_ON:使用动画 lvgl.ANOM_OFF:不使用动画

  • 相关阅读:
    [附源码]Python计算机毕业设计儿童闲置物品交易网站
    零基础自学SQL课程 | 相关子查询
    DIV布局个人介绍网页模板代码 家乡海阳个人简介网页制作 简单个人静态HTML网页设计作品 DW个人网站制作成品 web网页制作与实现...
    【云原生Kubernetes系列第七篇】一文掌握k8s之YAML文件(少攀谈,多沉潜,清醒而独立)
    stream().sorted()以及java中常用的比较器
    swoole进行性能查看火焰图tideways_xhprof xhgui
    git从远程仓库拉取指定日期版本的代码到本地
    Visual Studio 2022 版本 17.5 预览版 正式上线,有你期待的功能吗?
    工作中遇到的事务
    基于Python和mysql开发的今天吃什么微信小程序(源码+数据库+程序配置说明书+程序使用说明书)
  • 原文地址:https://blog.csdn.net/l531798151/article/details/132656143