SuperAPI AI 工具集

robius-widget-patterns

前端与建站

查看项目

更新于 10-16 04:39

技能介绍

用途

Robius Widget Patterns 是一套基于 Robrix 与 Moly 代码库总结的 Makepad 可复用组件设计最佳实践。它用于在创建可复用 Makepad 组件、设计组件 API、实现文本/图片切换模式以及进行 Makepad 动态样式设置时提供参考。

主要能力

该技能覆盖以下生产级组件模式(位于 _base/ 目录):

  • 01-widget-extension:为组件引用添加辅助方法
  • 02-modal-overlay:使用 DrawList2d 浮层实现弹窗与对话框
  • 03-collapsible:可展开/折叠区块
  • 04-list-template:使用 LivePtr 模板的动态列表
  • 05-lru-view-cache:内存高效的视图缓存
  • 14-callout-tooltip:带箭头定位的提示气泡
  • 20-redraw-optimization:高效重绘模式
  • 15-dock-studio-layout:IDE 风格可调整面板
  • 16-hover-effect:使用实例变量的悬停效果
  • 17-row-based-grid-layout:动态网格布局
  • 18-drag-drop-reorder:拖拽排序组件
  • 19-pageflip-optimization:PageFlip 切换优化,即刻销毁/缓存模式
  • 21-collapsible-row-portal-list:使用 FoldHeader 自动分组门户列表中的连续项
  • 22-dropdown-overlay:使用 DrawList2d 浮层的下拉弹窗(不推入布局)

使用方式

标准组件结构采用 live_design! DSL 定义外观,配合 #[derive(Live, LiveHook, Widget)] 结构体实现逻辑。使用 #[deref] 委托给内部 View,用 #[live] 声明 DSL 可配置属性,用 #[rust] 保存仅 Rust 侧状态,用 #[animator] 支持动画。实现 Widget trait 的 handle_event 与 draw_walk 方法。

文本/图片切换模式通过 flow: Overlay 叠加两个视图,用 set_visible() 切换显示,并通过 apply_over 动态应用背景色等样式。

组件引用模式为 *Ref 实现外部 API 方法,内部通过 borrow_mut() 调用实际组件方法。

可折叠模式通过布尔状态切换内容可见性并旋转图标。加载状态模式用枚举管理 Idle/Loading/Loaded/Error 状态并切换对应视图。PortalList 项模式用于虚拟列表,通过 set_item_range、next_visible_item 与 item 方法填充数据。

适用场景

适用于使用 Makepad 框架开发桌面或移动应用界面时,需要构建可复用组件、设计组件 API、实现动态样式、文本/图片切换、可折叠区块、加载状态、虚拟列表、模态浮层、拖拽排序、响应式布局等场景。参考文件还包含 Moly 专属模式:Slot 运行时内容替换、MolyRoot 条件渲染包装、AdaptiveView 响应式移动/桌面布局、聊天行变体(UserLine、BotLine、ErrorLine 等)、带操作按钮的 CommandTextInput、单选按钮侧边栏导航。

限制

资料未提供该技能的安装方式、收费模式、平台支持范围或具体效果数据。部分模式的具体实现细节需参考对应参考文件(references/widget-patterns.md、references/styling-patterns.md、references/moly-widget-patterns.md)。