Tasker Scenes 场景详解 自定义 UI 界面 覆盖层与对话框
Scene 是什么
Scene(场景)是 Tasker 中最被低估、但也最有想象力的功能。简单说,Scene 是 Tasker 内置的 UI 构建系统——你可以用它创建:
- 悬浮按钮 / 快捷开关面板
- 自定义设置仪表盘
- 表单 / 输入对话框
- 覆盖层(Overlay)叠加在其他 App 之上
- 弹出菜单替代 Android 原生选择界面
Scene 和 Task 的关系:Scene 是一个独立的 UI 资源,通过 Show Scene 动作 在 Task 中调用。Task 控制"什么时候显示 Scene",Scene 负责"显示什么"和"用户点了之后做什么"。
Scene 的显示模式
Show Scene 动作支持多种显示方式,决定 Scene 如何出现在屏幕上:
| 模式 | 效果 | 典型用途 |
|---|---|---|
| Overlay | 非阻挡式覆盖层 | 悬浮按钮、常显控制面板 |
| OverlayBlocking | 阻挡式覆盖层 | 需要用户交互的弹出层 |
| Dialog | 小尺寸对话框 | 确认弹窗、简短表单 |
| DialogDim | 半透明背景的对话框 | 需要用户确认的重要提示 |
| DialogBlur | 背景模糊的对话框 | 美观的确认框 |
| OverBlockFullDisplay | 全屏阻挡层 | 临时覆盖整个屏幕 |
Overlay 和 Dialog 的区别:Overlay 不阻挡触摸事件,用户可以同时操作底层 App;Dialog 会拦截所有触摸,直到关闭 Dialog。
Screen Builder:可视化编辑器
从 Tasker 6.4 开始,Scene 有了全新的 Screen Builder——一个可视化拖拽编辑器,不需要写 XML 就能构建自定义界面。
Screen Builder 的核心概念:
- 组件树:Scene 由容器(Box/Column/Row)和叶子组件(Text/Button/Image/TextField)组成树形结构
- 修饰符:给每个组件设置样式——颜色、大小、边框、圆角、透明度、点击事件
- 点击事件:每个可交互组件可以绑定一个 Task,点击时执行
Screen Builder 让 Scene 的门槛大幅降低。之前版本需要手写 XML 才能实现的布局,现在拖拽几下就能完成。
Scene 的交互
Scene 不是静态页面——它的每个按钮、每个输入框都可以触发 Tasker 动作:
- 按钮点击 → 执行指定 Task
- 文本输入框 → 把用户输入赋值给指定变量
- 滑块 / 开关 → 改变值并触发动作
- Scene 关闭 → 可选地触发一个 Task
这使得 Scene 非常适合做"参数收集器"——比如一个仪表盘 Scene,上面有几个开关,每个开关对应不同的自动化配置。
Scene 与状态栏通知的配合
Tasker 的常驻通知(Permanent Notification)可以作为 Scene 的"入口"。当你需要一个长期存在的控制面板时,一个常驻通知按钮(显示 Scene)是最轻量的方案——不需要前台 Service、不会被杀进程。
Scene 的边界
Scene 本质上是 Tasker 的内部组件,不是独立 App:
- 不需要安装——随 Tasker 一起运行
- 不需要权限声明——直接使用 Tasker 已有的权限
- 不能脱离 Tasker——Tasker 被禁用或被杀后 Scene 也会消失
- 不是 WebView——Scene 是原生渲染,性能比 HTML 覆盖层好
高级用法和 Screen Builder 详解见 进阶能力分组。