LVGL-lv_tileview

1 背景介绍

1.1 背景介绍

lv_tileview 是 LVGL 提供的一个特殊容器控件,用于创建一个可通过滑动手势或动画切换的多页面视图。它将多个“子页面”排列在一个二维网格中,用户可以通过上下左右滑动在这些页面间切换,就像手机主屏滑动切换桌面页面一样。

1.2 基本概念

  1. tileview 是一个容器对象,可以添加多个 “tile”(瓷砖/页面)。
  2. 每个 tile 是一个标准的 lv_obj_t,你可以往里面添加按钮、图表、图像等子控件。
  3. tileview 支持方向控制(例如只允许左右滑动,或上下左右都允许)。
  4. 页面会以滑动吸附的方式进行切换,不会卡在中间。

1.3 应用场景

  1. 主页分页 / 主屏切换
    类似 Android 桌面左右滑动切换多个主屏,每个 tile 显示不同的功能或快捷入口。

  2. 数据仪表盘
    每页一个仪表界面,如温度、湿度、电量等,适合工业设备、物联网面板(HMI)。

  3. 图片 / 相册浏览器
    每个 tile 显示一张图片,用户通过滑动浏览相册或图像列表。

  4. 多页设置菜单
    每个 tile 是一个设置分类页面(如 WiFi、亮度、声音等),支持触摸滑动切换,用户体验好。

  5. 导航类界面
    比如地图软件,或某些路径控制界面;每页对应一个功能或子模块。

  6. 数字输入或多种键盘布局
    一个 tile 是数字键盘,另一个 tile 是字母键盘。滑动切换不同输入方式。

1.4 注意事项

  1. lv_tileview 是基于滚动容器构建的,所以不能嵌套在另一个滚动容器中。

  2. 每个 tile 是一个独立的容器对象,可以像普通控件一样操作。

  3. 页面较多时建议控制每页内容复杂度,避免内存压力。

  4. 若要实现滑动后执行某些操作,可监听 LV_EVENT_SCROLL_END 事件

2 主要函数介绍

2.1 创建 tileview

这将在当前屏幕上创建一个 tileview 对象。

lv_obj_t * tv = lv_tileview_create(lv_scr_act());

在这里插入图片描述

2.2 添加 tile 页面

lv_obj_t * tile = lv_tileview_add_tile(tv, x, y, allowed_dirs);

x 和 y 是 tile 的坐标(网格中位置)
allowed_dirs 表示从这个 tile 可以滑动到哪些方向,例如 LV_DIR_HOR | LV_DIR_VER

2.2.1 水平移动

    lv_obj_t* tile1= lv_tileview_add_tile(tileview, 0, 0, LV_DIR_HOR );  // 第一个页面
    // 添加内容
    lv_obj_t* label = lv_label_create(tile1);
    lv_label_set_text(label, "first page");
    lv_obj_center(label);

    lv_obj_t* tile2=lv_tileview_add_tile(tileview, 1, 0, LV_DIR_HOR );  // 第二个页面

        // 添加内容
    label = lv_label_create(tile2);
    lv_label_set_text(label, "second page"<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数贾电子科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值