ESP32 开发笔记(四)LVGL控件学习 Tileview 平铺视图控件

本文介绍 LVGL 中 Tileview 控件的功能和使用方法,包括有效区域设置、动画时间调整、事件处理等内容,并提供了多个示例说明如何利用 Tileview 创建平铺视图界面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先看效果,创建四个页面视图循环环形切换每个页面创建不同控件

开发板购买链接https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.50111deb2Ij1As&ft=t&id=626366733674

 一、开发板简介

二、开发环境搭建 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_tileview):

平铺视图(Tileview)是一个容器对象,其中的元素(称为图块)可以以网格形式排列。通过滑动,用户可以在图块之间导航。

如果Tileview是屏幕尺寸的,它将提供可能已经在智能手表上看到的用户界面。

零件和样式

Tileview与 页面(lv_page) 具有相同的部分。期望 LV_PAGE_PART_SCRL ,因为它不能被引用并且始终是透明的。请参阅该页面的详细文档。

用法

有效区域

磁贴不必在每个元素都存在的地方形成完整的网格。网格中可以有孔,但必须是连续的,即不能有空的行或列。

使用 lv_tileview_set_valid_positions(tileview, valid_pos_array, array_len) 可以设置有效位置。仅可以滚动到该位置。 0,0 索引表示左上方的图块。 例如。 lv_point_t valid_pos_array[] = {{0,0}, {0,1}, {1,1}, {{LV_COORD_MIN, LV_COORD_MIN}} 给出了 “L” 形的图块视图。它指示 {1,1} 中没有图块,因此用户无法在此处滚动。

换句话说, valid_pos_array 告诉磁贴在哪里。可以即时更改它以禁用特定图块上的某些位置。 例如,可能存在一个2×2网格,其中添加了所有图块,但第一行(y = 0)作为“主行”,第二行(y = 1)包含其上方图块的选项。 假设水平滚动只能在主行中进行,而在第二行中的选项之间则不可能进行。在这种情况下, valid_pos_array 需要改变时,选择一个新的主瓦:

  • 对于第一个主磁贴: {0,0},{0,1},{1,0} 以禁用 {1,1} 选项磁贴
  • 对于第二个主磁贴: {0,0},{1,0},{1,1} 以禁用 {0,1} 选项磁贴

设置瓷砖

设置当前可见的图块使用: lv_tileview_set_tile_act(tileview, x_id, y_id, LV_ANIM_ON/OFF)

添加元素

要添加元素,只需在Tileview上创建一个对象并将其手动定位到所需位置即可。

lv_tileview_add_element(tielview, element) 应该用来使Tileview滚动(拖动)其元素一个。例如,如果图块上有一个按钮,则需要将该按钮显式添加到Tileview中,以使用户也可以使用该按钮滚动Tileview。

滚动传播

页面状对象(如 列表(lv_list) )的滚动传播功能在这里可以很好地使用。例如,可以有一个完整的 列表(lv_list) ,当列表到达最顶部或最底部时,用户将改为滚动图块视图。

动画时间

平铺视图的动画时间可以使用 lv_tileview_set_anim_time(tileview, anim_time) 进行调整。

在以下情况下应用动画

  • 使用 lv_tileview_set_tile_act 选择一个新图块
  • 当前磁贴稍微滚动然后释放(还原原始标题)
  • 当前磁贴滚动超过一半大小,然后释放(移至下一个磁贴)

边缘闪光

当滚动到达的图块视图击中无效位置或图块视图的末尾时,可以添加 “边缘闪光” 效果。

使用 lv_tileview_set_edge_flash(tileview, true) 启用此功能。


事件

除了 通用事件 ,平铺视图还支持以下 特殊事件 :

  • **LV_EVENT_VALUE_CHANGED ** 当加载了带有滚动或 lv_tileview_set_act 的新图块时发送。将事件数据设置为 valid_pos_array 中新图块的索引(其类型为 uint32_t * )

按键处理

平铺视图可处理以下按键:

  • LV_KEY_UP, LV_KEY_RIGHT 将滑块的值增加1
  • LV_KEY_DOWN, LV_KEY_LEFT 将滑块的值减1

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值