anyuianyui
anyui-LIVE
anyui
反馈问题
  • English
  • 中文
anyui-LIVE
anyui
反馈问题
  • English
  • 中文
  • 介绍

    • 介绍
  • 快速开始

    • 快速开始
  • 工作区

    • 工作区
  • 编辑器

    • 概览
    • 工具栏
    • 导航器
    • 检查器
    • 事件流总览
    • 状态栏
    • 设置
    • 键盘快捷键
    • 画布
    • 预览
    • 资源管理
    • 代码查看器
    • 历史
  • 智能体
  • 桌面版
  • 主题

    • 图片
    • 字体库
    • 布局
    • 符号
    • 全局样式
    • 动态 LVGL 版本
    • 动态显示尺寸变更
    • 重置屏幕尺寸
    • 代码生成
    • 移植
    • 模拟器
    • 国际化
  • 常见问题

显示图层适合放那些不属于某个单独页面、但又需要长期显示的内容,例如全局背景、常驻状态条、全局遮罩或悬浮提示。

什么是显示图层

在 LVGL 里,活动屏幕用来承载当前页面;显示图层则是固定挂在显示器上的几层“公共区域”。它们不会随着页面切换一起消失,所以适合放跨页面复用的界面元素。根据 LVGL 官方文档《Screen Layers》 和 《Layers》 的说明,显示器创建后会同时带上活动屏幕、顶部图层、系统图层,以及在 LVGL 9.x 中提供的底部图层;其中顶部图层和系统图层默认都是透明、不可滚动、不可点击,底部图层位于活动屏幕下方,默认透明且可点击。

可以把它理解成下面这组叠放关系:

图层位置适合放什么
底部图层在页面下方全局背景、装饰底图
活动屏幕页面主体当前页面自己的内容
顶部图层在页面上方常驻状态栏、全局悬浮按钮、遮罩
系统图层最上方必须始终压在最上层的提示或系统级覆盖内容

其中:

  • 活动屏幕 适合页面内容本身。
  • 顶部图层 更适合大多数跨页面浮层。
  • 系统图层 优先级最高,只有明确需要“永远压在最上面”时再用。
  • 底部图层 只在 LVGL 9.x 可用,适合做全局背景。

四种层级分别适合放什么

活动屏幕

活动屏幕就是当前正在显示的页面主体。它负责承载当前页面自己的内容,切换页面时也会随之变化。

典型元素包括:

  • 当前页面的主要布局
  • 页面里的按钮、列表、表单、图表
  • 只属于当前页面的标题、说明文字和图片
  • 跟随页面一起进入和退出的交互元素

如果某块内容只在某一个页面里使用,不需要跨页面常驻,通常就应该放在活动屏幕里。

顶部图层

LVGL 官方文档把顶部图层定义为“位于活动屏幕之上,并在所有屏幕上可见”的共享层,适合放需要跨页面常驻、但又属于业务界面本身的一层界面元素。

典型元素包括:

  • 顶部导航栏、标题栏、标签栏
  • 全局悬浮按钮
  • 全局弹窗宿主、遮罩层
  • 跨页面共用的提示条、状态条

如果把顶部图层设为可点击,它会吸收用户点击,表现得像一个模态层。这也是它适合承载遮罩和弹窗的原因之一。

限制与注意事项:

  • 按 LVGL 官方默认行为,顶部图层默认不可滚动、不可点击
  • 默认透明,所以不会自己挡住下面的页面内容
  • 如果你主动把它设为可点击,它会优先吸收点击,下面的页面就无法直接响应
  • 适合做全局浮层,但不适合承载需要像普通页面那样滚动浏览的大块内容

系统图层

系统图层位于顶部图层之上,优先级最高。LVGL 官方文档给出的典型例子是鼠标光标,因为这类元素必须始终显示在所有内容之上。

典型元素包括:

  • 鼠标光标、触控指示器
  • 系统级提示
  • 必须压住所有业务界面的紧急提示或覆盖层
  • 调试用的性能信息、系统状态浮层

如果一个元素只是“希望固定显示”,通常优先放在顶部图层;只有当它必须始终压在最上面时,再考虑放到系统图层。

限制与注意事项:

  • 按 LVGL 官方默认行为,系统图层默认不可滚动、不可点击
  • 它始终位于顶部图层之上,优先级最高
  • 默认透明,但一旦放入可见元素,就会压在所有业务界面之上
  • 更适合系统级提示、光标、调试覆盖层,不建议放普通业务内容

底部图层

底部图层位于活动屏幕下方,只在 LVGL 9.x 可用。LVGL 官方文档特别说明:只有当前活动屏幕的背景不是完全不透明时,底部图层才会露出来。

典型元素包括:

  • 全局背景图
  • 固定的装饰底板
  • 需要通过半透明页面透出的背景元素
  • 跨页面共用的底纹、氛围层

如果当前页面背景完全不透明,那么底部图层上的内容通常看不见。这一点在设计时尤其要注意。

限制与注意事项:

  • 按 LVGL 官方默认行为,底部图层默认不可滚动,但可点击
  • 它位于活动屏幕下方,只有当前活动屏幕背景不是完全不透明时才会露出来
  • 只在 LVGL 9.x 提供;如果项目目标版本不支持,检查器里不会提供这个选项
  • 更适合做背景和底纹,不适合放需要稳定露出的前景交互元素

什么时候用,什么时候不用

适合用显示图层的情况:

  • 切换页面后,这块内容还要继续保留
  • 多个页面共用同一套悬浮元素
  • 需要固定在最上层或最下层显示

不适合用显示图层的情况:

  • 内容只属于某一个页面
  • 元素需要跟随页面一起进出场
  • 只是想做页面内部的前后遮挡关系

一个简单判断方法是:如果它应该跟着页面走,就放在活动屏幕;如果它应该一直留在显示器上,就用显示图层。

在编辑器里怎么用

1. 先创建一个屏幕

显示图层在编辑器里也是以屏幕的形式编辑的,所以你可以先像平时一样创建一个屏幕。

2. 在检查器里设置“显示图层”

选中这个屏幕后,在检查器里把它的显示图层改成目标图层,例如“顶部图层”“系统图层”,或者在 LVGL 9.x 下选择“底部图层”。

这个选项最直接的用途是:当你把一个屏幕设计完后,才发现它其实放错了图层,可以在这里切换到正确的显示图层。 比如原本放在活动屏幕里设计,后来发现它应该是跨页面常驻的导航栏或全局浮层,就可以在检查器里改过来。

如果你想把它恢复成 LVGL 官方语义里的“活动屏幕”,就在这里把显示图层切回编辑器里的 “无(普通屏幕)”。

如果某个图层选项没有出现,通常表示当前 LVGL 版本不支持它。

同一个显示图层一次只能对应一个屏幕,所以更适合承载“全局公共内容”,而不是拆成很多页面分别管理。

不过从实际使用上,更推荐的方式是:先在导航器里选中目标图层,再开始设计这个图层里的内容。
例如要做常驻导航栏,最好先进入“顶部图层”再开始摆放组件,而不是先按活动屏幕设计完,再回来切换。这样更不容易在结构、层级和交互预期上返工。

3. 像编辑活动屏幕一样编辑内容

进入该图层后,仍然可以在画布里放置组件、调整布局、编辑样式。不同之处在于,这些内容会按图层规则叠放在其他页面的上方或下方,而不是作为一个活动屏幕被切换显示。

4. 在预览中验证叠放效果

切换普通页面时,图层内容会继续保留。你可以重点检查这几件事:

  • 是否真的需要跨页面常驻
  • 是否遮挡了页面上的可点击区域
  • 顶层提示是否压住了应该显示的页面内容
  • 底部图层上的背景是否真的透出来了

使用建议

  • 优先少用、用准:图层很适合做全局元素,但不适合承载大量页面业务内容。
  • 顶部图层比系统图层更常用:除非你明确需要最高优先级,否则优先放在“顶部图层”。
  • 一层只放一类职责:例如“底部图层”放背景,“顶部图层”放全局悬浮界面元素,避免后期难以维护。
  • 先从活动屏幕开始:只有当你确认内容需要跨页面保留时,再改成显示图层。

相关指南

  • 概览 - 编辑器整体界面。
  • 导航器 - 创建和切换屏幕。
  • 检查器 - 修改屏幕的属性。
  • 画布 - 在画布里编辑图层内容。
  • 预览 - 检查图层与页面的叠放效果。