名称: makepad-router 描述: “关键:用于所有Makepad/Robius相关问题,包括部件、布局、事件和着色器。 触发词:makepad, robius, live_design, app_main, Widget, View, Button, Label, Image, TextInput, ScrollView, RoundedView, SolidView, PortalList, Markdown, Html, TextFlow, 布局, Flow, Walk, 内边距, 外边距, 宽度, 高度, Fit, Fill, 对齐, 间距, 事件, 动作, Hit, FingerDown, FingerUp, KeyDown, handle_event, 点击, 轻触, 动画器, 动画, 状态, 过渡, 悬停, 按下, 缓动, 着色器, draw_bg, draw_text, Sdf2d, 像素, 渐变, 发光, 阴影, 字体, 文本样式, 字体大小, 字形, 排版, tokio, 异步, 产生, submit_async, SignalToUI, post_action, apply_over, TextOrImage, 模态, 可折叠, 拖放, 应用状态, 持久化, 主题, 范围, 部署, 包, APK, IPA, WASM, cargo makepad, makepad部件, makepad 组件, makepad 按钮, makepad 布局, makepad 事件, makepad 动画, makepad 着色器, 创建组件, 自定义组件, 开发应用, 居中, 对齐, 点击事件, 悬停效果, 渐变, 阴影, 字体大小” 全局模式: [“/live_design!*", "/*.rs”]
Makepad 问题路由器
版本: 2.0.0 | 最后更新: 2026-01-21
克劳德的指令
当此技能触发时,必须根据问题加载适当的子技能:
路由表
| 关键词 | 加载技能 |
|---|---|
live_design!, app_main!, 入门, 应用结构 |
makepad-basics |
DSL, 继承, <Widget>, Foo = { } |
makepad-dsl |
| 布局, Flow, Walk, 内边距, 宽度, 高度, 居中, 对齐 | makepad-layout |
| View, Button, Label, Image, TextInput, 部件, Markdown, Html | makepad-widgets |
| 事件, 动作, Hit, FingerDown, handle_event, 点击 | makepad-event-action |
| 动画器, 状态, 过渡, 悬停, 按下 | makepad-animation |
| 着色器, draw_bg, Sdf2d, 渐变, 发光, 阴影 | makepad-shaders |
| 字体, 文本样式, 字体大小, 字形 | makepad-font |
| 平台, macOS, Android, iOS, WASM | makepad-platform |
| tokio, 异步, 产生, submit_async | robius-app-architecture |
| apply_over, 模态, 可折叠, pageflip | robius-widget-patterns |
| 自定义动作, MatchEvent, post_action | robius-event-action |
| 应用状态, 持久化, 主题切换 | robius-state-management |
| 部署, 包, APK, IPA | makepad-deployment |
| 故障排除, 错误, 调试 | makepad-reference |
上下文包加载
对于复杂任务,加载多个技能:
| 上下文 | 加载这些技能 |
|---|---|
| 创建部件/组件 | makepad-widgets, makepad-dsl, makepad-layout, makepad-animation, makepad-shaders, makepad-event-action |
| 构建完整应用 | makepad-basics, makepad-dsl, makepad-layout, makepad-widgets, makepad-event-action, robius-app-architecture |
| UI设计 | makepad-dsl, makepad-layout, makepad-widgets, makepad-animation, makepad-shaders |
| 生产模式 | robius-app-architecture, robius-widget-patterns, robius-state-management |
技能依赖
当加载一个技能时,也加载其依赖:
| 技能 | 同时加载 |
|---|---|
| makepad-widgets | makepad-layout, makepad-dsl |
| makepad-animation | makepad-shaders |
| makepad-shaders | makepad-widgets |
| robius-widget-patterns | makepad-widgets, makepad-layout |
示例工作流
用户:"如何创建一个带有悬停动画的自定义按钮?"
分析:
1. 关键词:自定义, 按钮, 悬停, 动画
2. 上下文:部件创建
3. 加载:makepad-widgets, makepad-animation, makepad-shaders, makepad-event-action
使用所有加载技能的模式回答。
默认项目设置
创建Makepad项目时:
[package]
edition = "2024"
[dependencies]
makepad-widgets = { git = "https://github.com/makepad/makepad", branch = "dev" }
[features]
default = []
nightly = ["makepad-widgets/nightly"]
关键模式快速参考
部件定义
#[derive(Live, LiveHook, Widget)]
pub struct MyWidget {
#[deref] view: View,
#[live] property: f64,
#[rust] state: State,
#[animator] animator: Animator,
}
异步模式 (Robius)
// UI -> 异步
submit_async_request(MyRequest { ... });
// 异步 -> UI
Cx::post_action(MyAction { ... });
SignalToUI::set_ui_signal();