先看效果,创建一个带FontAwesome字体图标的列表演示列表控件的使用
一、开发板简介
二、开发环境搭建 windows
三、基础示例
四、LVGL控件使用示例
LVGL_Arc_Test 圆弧指示器通过触摸动态改变值
LVGL_Bar_Test 通过动画方式动态演示Bar进度条的使用方法
LVGL_Button_Test 通过5种不同动态效果的按钮学习按钮的创建与使用
LVGL_ButtonMatrix_Test 创建一个计算器布局来演示矩阵按钮控件的使用
LVGL_Calendar_Test 日历控件的创建和使用
LVGL_Canvas_Test 透明画布和画一个圆角过渡色矩形旋转角度学习画布的使用
LVGL_Chart_Test 通过创建三个不同风格的图表来学习图表控件的使用
LVGL_Checkbox_Test 学习复选框控件的创建和使用
LVGL_ColorPicker_Test 创建一个颜色选择器并动态显示当前颜色的RGB值
LVGL_Container_Test 在容器控件上动态创建三个文本标签
LVGL_Drop_down_List_Test 创建三个不同类型的下拉选择控件
LVGL_Gauge_Test 创建一个动态仪表和静态多指针仪表
LVGL_Image_Test 通过四个滑动条控制图片颜色的变化学习图像控件的使用
LVGL_ImageButton_Test 创建一个图片背景的图像按钮
LVGL_Keyboard_Test 通过一个文本输入框控件还学习键盘控件的调用关闭设置
LVGL_Label_Test 创建颜色可变,长文本滚动,带阴影3D效果三个标签控件
LVGL_LED_Test 创建三个LED,学习LED控件的调光,颜色,开关的设置
LVGL_Line_Test 通过二维数组创建一段折线来演示线控件的使用
LVGL_LineMeter_Test 创建两个不同的线段弧形指示器动态展示数据
LVGL_List_Test 创建一个带图标的列表控件
LVGL_MessageBox_Test 创建一个带按钮的消息框控件
LVGL_ObjectMask_Test 创建一个变幻色的文本学习蒙版遮罩效果
LVGL_Page_Test 学习页面控件的使用
LVGL_Roller_Test 通过示例学习滑动列表选择器控件
LVGL_Slider_Test 创建一个单向和一个双向滑动条控件
LVGL_Spinbox_Test 学习微调控件的使用
LVGL_Spinner_Test 创建三个不同的环形加载器
LVGL_Switch_Test 创建两个不同的开关控件
LVGL_Table_Test 创建一个简单的表格
LVGL_Tabview_Test 实现三页的页面切换学习Tabview控件
LVGL_Textarea_Test 长按实现打字机效果的Textarea控件
LVGL_Tileview_Test 实现四面环形触摸切换的Tileview控件
LVGL_Window_Test 创建一个窗口,带设置子窗口学习窗口控件的使用
列表(lv_list):
列表是从背景 页面(Page) 和其上的 按钮(Buttons) 构建的。按钮包含可选的类似图标的 图像(Image)
_ (也可以是符号)和 标签(Label)
_。当列表足够长时,可以滚动它。
零件和样式
列表与 页面(Page) 具有相同的部分
LV_LIST_PART_BG
LV_LIST_PART_SCRL
LV_LIST_PART_SCRLBAR
LV_LIST_PART_EDGE_FLASH
有关详细信息,请参见 页面(Page) 部分。
列表上的按钮被视为普通按钮,它们只有一个主要部分,称为 LV_BTN_PART_MAIN
。
用法
添加按钮
可以使用 lv_list_add_btn(list, &icon_img, "Text")
或符号 lv_list_add_btn(list, SYMBOL_EDIT, "Edit text")
添加新的列表元素(按钮)。如果不想添加图像,请使用 NULL
作为图像源。该函数返回指向创建的按钮的指针,以允许进行进一步的配置。
按钮的宽度根据对象的宽度设置为最大。按钮的高度会根据内容自动调整。 (内容高度+ padding_top + padding_bottom)。
标签以 LV_LABEL_LONG_SROLL_CIRC
长模式创建,以自动循环滚动长标签。
lv_list_get_btn_label(list_btn)
和 lv_list_get_btn_img(list_btn)
可用于获取标签和列表按钮的图像。可以直接使用 lv_list_get_btn_text(list_btn)
来输入文本。
删除按钮
要删除列表元素,请使用 lv_list_remove(list, btn_index)
。可以通过 lv_list_get_btn_index(list, btn)
获得btn_index,其中btn是 lv_list_add_btn()
的返回值。
要清除列表(删除所有按钮),请使用 lv_list_clean(list)
手动导航
可以使用 lv_list_up(list)
和 lv_list_down(list)
在列表中手动导航。
可以使用 lv_list_focus(btn, LV_ANIM_ON/OFF)
直接关注按钮。
上/下/焦点移动的动画时间可以通过以下命令设置: lv_list_set_anim_time(list, anim_time)
。动画时间为零表示不是动画。
布局
默认情况下,列表是垂直的。要获取水平列表,请使用 lv_list_set_layout(list, LV_LAYOUT_ROW_MID)
。
边缘闪烁
当列表到达最高或最低位置时,可以显示类似圆圈的效果。 lv_list_set_edge_flash(list, true)
启用此功能。
滚动传播
如果列表是在其他可滚动元素(例如 页面(Page) )上创建的,并且列表无法进一步滚动,则滚动可以传播到父级。这样,滚动将在父级上继续。可以通过lv_list_set_scroll_propagation(list,true)启用它
事件
仅支持 通用事件 。
按键处理
列表处理以下按键:
- LV_KEY_RIGHT/DOWN 选择下一个按钮
- LV_KEY_LEFT/UP 选择上一个按钮
请注意,与往常一样, LV_KEY_ENTER
的状态会转换为 LV_EVENT_PRESSED/PRESSING/RELEASED
等。
所选按钮处于 LV_BTN_STATE_PR/TG_PR
状态。
要手动选择按钮,请使用 lv_list_set_btn_selected(list, btn)
。当列表散焦并再次聚焦时,它将恢复最后选择的按钮。