news 2026/6/3 14:25:57

065、LVGL基础控件:列表(List)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
065、LVGL基础控件:列表(List)

LVGL基础控件:列表(List)

从一次诡异的触摸偏移说起

去年做一款智能家居中控屏,用LVGL 8.3做UI。列表控件里塞了20多个设备条目,滑动起来倒是流畅,但有个怪现象——点击列表项时,触摸响应区域总是往右偏了大概30像素。排查了半天,发现是列表项里嵌了个图标,图标宽度没算进列表项的点击热区。当时在lv_list_add_btn之后手动调了lv_obj_set_width,结果把列表项内部的默认布局搞乱了。后来翻源码才发现,列表项本质上是个lv_btn,它的宽度默认继承父容器,但如果你手动改了宽度,LVGL的点击区域计算会基于你设置的值,而不是视觉上看到的实际内容区域。

这个坑让我意识到:列表控件看似简单,但它的内部结构、滚动机制、事件传递,都有不少值得深挖的细节。

列表控件的本质:一个带滚动的按钮容器

LVGL的lv_list,拆开来看其实就三层:

  1. 列表容器:一个lv_obj,默认开启滚动(lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLLABLE)),并且会限制子对象排列方向为垂直。
  2. 列表文本lv_list_add_text添加的,本质是个lv_label,只读,不能点击。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/3 14:21:18

Java:import NeverUsed

在Java中,如果想要导入一个类但不希望在代码中直接使用它的任何成员(例如方法或变量),可以使用import语句但不使用该类。这在某些情况下很有用,比如在编写大型项目时,可能想要导入一个类,以便在…

作者头像 李华
网站建设 2026/6/3 14:20:19

基于ESP32与电容式传感器的物联网土壤湿度监测方案

1. 项目概述与核心价值如果你正在为家里的盆栽、小菜园,或者更大规模的温室种植寻找一种稳定、可靠且能长期工作的土壤湿度监测方案,那么你很可能已经对市面上那些“插土即用”的廉价传感器感到失望了。这些传感器大多采用电阻式原理,两个金属…

作者头像 李华
网站建设 2026/6/3 14:18:41

别再只用一种地图了!GMap.Net图层叠加技巧:在WPF里实现天地图影像+注记的完美融合

WPF地图开发进阶:GMap.Net图层叠加技术与多源地图融合实战 在GIS系统开发中,单纯显示单一地图往往无法满足复杂业务需求。想象一下环境监测平台需要同时展示卫星影像和污染数据热力图,或者物流系统要在地图上叠加实时交通路况与配送路线——这…

作者头像 李华
网站建设 2026/6/3 14:16:59

高数函数定义域避坑指南:从‘狗不能为零’到整体思想,一次讲清初学者最易犯的3个错误

高数函数定义域避坑指南:从‘狗不能为零’到整体思想,一次讲清初学者最易犯的3个错误刚接触高等数学时,函数定义域就像一道隐形的门槛——看似简单,却总在解题时绊倒无数人。我曾见过太多同学在作业本上反复涂改定义域范围&#x…

作者头像 李华