公司动态
102、LVGL Flex布局基础
LVGL Flex布局基础:从一次诡异的控件错位说起调试一块基于ESP32-S3的智能家居面板时,遇到一个让我挠头的问题:三个按钮明明设置了相同的宽度和间距,在128x64的OLED上显示正常,换到320x240的TFT屏上,第三个按钮直接“飞”到了屏幕右侧边缘。检查代码三遍,padding、margin、坐标计算都没错,最后发现罪魁祸首是——我忘了给父容器设置flex布局。这个坑让我意识到,LVGL的Flex布局虽然名字听着像CSS Flexbox,但细节上藏着不少嵌入式特有的脾气。今天这篇笔记,就从我踩过的坑开始,把LVGL Flex布局的底裤扒干净。Flex布局的“开关”藏在哪LVGL里启用Flex布局,不是写一行display: flex就完事。你需要对父容器调用lv_obj_set_flex_layout(obj, LV_FLEX_FLAG_ROW)。注意这个LV_FLEX_FLAG_ROW——它决定了主轴方向。我习惯叫它“流动方向”,因为子对象会沿着这个方向一个接一个排列。lv_obj_t*cont=lv_obj_create