-- a dropdown on top left local dd = lvgl.Dropdown(nil, { -- note there are two "Orange" options = "Apple\nBanana\nOrange\nCherry\nGrape\nRaspberry\nMelon\nOrange\nLemon\nNuts", symbol = "\xEF\x81\x94", dir = lvgl.DIR.RIGHT, highlight = false, text = nil, align = { type = lvgl.ALIGN.TOP_LEFT, x_ofs = 20, y_ofs = 20, } }) local list = dd:get("list") print("get dropdown list: ", list) list:set { text_font = lvgl.BUILTIN_FONT.MONTSERRAT_20 } print("available options:", dd:get("options")) local cnt = 0 dd:onevent(lvgl.EVENT.VALUE_CHANGED, ---comment ---@param obj Dropdown ---@param code ObjEventCode function(obj, code) obj:add_option(string.format("Option:%d", cnt), dd:get("option_cnt")) cnt = cnt + 1 print(obj:get("selected_str"), "option_cnt" .. obj:get("option_cnt")) end ) -- another dropdown on top left local dd = lvgl.Dropdown(nil, { options = "Apple\nBanana\nOrange\nCherry\nGrape\nRaspberry\nMelon\nOrange\nLemon\nNuts", symbol = "\xEF\x81\xB7", dir = lvgl.DIR.BOTTOM, text = "SetText", selected = 5, text_font = lvgl.BUILTIN_FONT.MONTSERRAT_20, align = { type = lvgl.ALIGN.BOTTOM_MID, x_ofs = 0, y_ofs = -20, } }) dd:get("list"):set { text_font = lvgl.Font("montserrat", 24) } dd:onevent(lvgl.EVENT.VALUE_CHANGED, function(obj, code) print(obj:get("selected_str") .. ":" .. obj:get("selected"), "dir:" .. obj:get("dir"), "option_index" .. dd:get("option_index", obj:get("selected_str"))) end) lvgl.Timer { period = 1000, cb = function(t) t:delete() dd:open() print("now dd should be opened: " .. (dd:is_open() and "open" or "closed")) end } lvgl.Timer { period = 2000, cb = function(t) t:delete() dd:close() print("now dd should be closed: " .. (dd:is_open() and "open" or "closed")) end }