滑动菜单使用指导
不可见组件:把屏幕上的一个布局装进弹出层显示——从底部滑出(分享面板、筛选条件、选择器)、 居中弹出当自定义对话框(登录框、确认页),或从左右两侧滑出当侧边抽屉(侧滑菜单)。原生对话框只能放文字, 滑动菜单里可以放任意组件:输入框、按钮、列表、图片都行,各组件的事件照常写。
用法三步:设计器里搭好一个布局当面板内容 → 屏幕初始化时设置内容(布局)(SetContent) →
需要时显示(Show)/关闭(Hide)。
「设置内容」会把这个布局从屏幕上挪进面板,不再占原来的位置;「显示」时自动让它可见。
所以面板布局在设计器里通常取消勾选「可见」,免得打开屏幕时一闪而过(设计器里勾选「显示隐藏组件」就能继续编辑它)。
快速上手:底部分享面板
- 拖一个按钮(改名
按钮_分享)和一个标签(改名标签_结果); - 拖一个垂直布局(改名
垂直布局_面板,宽度设为充满,取消勾选「可见」),里面放三个按钮:按钮_微信、按钮_朋友圈、按钮_取消; - 拖一个滑动菜单(默认从底部滑出);
- 搭下面的代码块:
各案例独立使用;组合到同一屏幕时,将同名事件的处理合并到一个事件积木中。
when Screen1.Initialize() {
滑动菜单1.SetContent(垂直布局_面板)
}
when 按钮_分享.Click {
滑动菜单1.Show()
}
when 按钮_微信.Click {
标签_结果.Text = "已分享到微信"
滑动菜单1.Hide()
}
when 按钮_朋友圈.Click {
标签_结果.Text = "已分享到朋友圈"
滑动菜单1.Hide()
}
when 按钮_取消.Click {
滑动菜单1.Hide()
}
运行后点「分享」,面板从底部滑上来;点面板外面、按返回键或点「取消」都会收起。
把模式(Mode)改成 center 就变成居中的自定义对话框。
侧边抽屉(侧滑菜单)
模式(Mode)设为 left(或 right),面板就从屏幕左侧(右侧)滑出,铺满高度、宽度为屏幕的 80%。
菜单内容自己搭:顶部放头像和昵称,下面放几个按钮当菜单项。
- 拖一个垂直布局(改名
垂直布局_菜单,宽度充满,取消勾选「可见」),里面放一个标签(标签_昵称)和三个按钮按钮_首页、按钮_收藏、按钮_设置; - 拖一个滑动菜单,模式选
left;再拖一个按钮(按钮_菜单)用来打开抽屉,一个标签(标签_结果)显示点了哪项; - 搭下面的代码块:
when Screen1.Initialize() {
滑动菜单1.SetContent(垂直布局_菜单)
标签_昵称.Text = "你好,小明"
}
when 按钮_菜单.Click {
滑动菜单1.Show()
}
when 按钮_首页.Click {
标签_结果.Text = "打开了首页"
滑动菜单1.Hide()
}
when 按钮_设置.Click {
标签_结果.Text = "打开了设置"
滑动菜单1.Hide()
}
关闭动画与滑动关闭
关闭时会播放打开动画的反向效果:左侧菜单向左收回,右侧菜单向右收回,底部面板向下收回,居中面板缩小淡出。点空白遮罩、按返回键和调用关闭方法共用该效果;“已关闭”事件在动画完成后触发。
点外面可关闭默认开启,同时允许手势关闭:在左侧菜单上向左滑、右侧菜单上向右滑、底部面板上向下滑。面板跟随手指移动;短滑或取消手势会回弹,明显向外滑动或快速甩动才会关闭。反方向滑动和侧边菜单里的纵向滚动不会关闭菜单。居中面板不使用滑动关闭。
把点外面可关闭设为假时,空白点击、返回键和关闭手势均无效,仍可调用关闭方法。嵌套列表、滚动布局等优先处理自己的滚动;可先在面板空白处测试关闭手势。
用上面的侧边菜单案例测试:打开菜单,向左滑动收回;再打开后点右侧空白,应看到同样的收回动画。把模式改成 right,改为向右滑关闭;改成 bottom,向下滑关闭。关闭过程中再次调用显示,会取消关闭并恢复面板,不会被上一次的延迟回调关掉。
常见问题
| 现象 | 检查 |
|---|---|
| 点「显示」弹出错误提示 | 屏幕初始化时有没有调设置内容(布局)(SetContent) |
| 打开屏幕时面板内容先在屏幕上闪一下 | 面板布局在设计器里取消勾选「可见」 |
| 面板必须作答,不能点外面关掉 | 点外面可关闭(Cancelable)设为假,只用「关闭」方法关 |
| 面板内容很长显示不全 | 面板内容换成垂直滚动条布局,并给它设一个固定高度 |
搭建与测试
在设计器拖入本组件和案例涉及的按钮、标签、布局等组件,按案例中的名称重命名。先运行最小案例,确认事件返回,再增加业务逻辑。示例中的素材先上传到项目,服务器地址、令牌、文件路径换成自己的值。
可见组件需要有非零宽高;不可见工具组件必须由属性或方法启动。设计器展示样式不等于运行时已加载数据或绑定目标。联机测试应使用包含本组件的 AI 伴侣;涉及系统入口或权限的行为还要编译安装后验证。
案例:主动关闭筛选面板
放滑动菜单、垂直布局_筛选、打开和关闭按钮。布局先注册为内容,再显示弹层。
when Screen1.Initialize() {
滑动菜单1.SetContent(垂直布局_筛选)
}
when 按钮_打开.Click() {
滑动菜单1.Show()
}
when 按钮_关闭.Click() {
滑动菜单1.Hide()
}
when 滑动菜单1.Closed() {
标签1.Text = "筛选面板已关闭"
}
内容布局会移动到弹层,原位置不再显示。先 SetContent 再 Show;Cancelable 控制点击外部或返回时是否关闭。
属性、方法与事件速查
完整参数类型、默认值和平台说明见组件参考。下表按调用入口列出用途;有完成事件的方法在事件中读取结果。
| 入口 | 用途 |
|---|---|
背景颜色(BackgroundColor) |
面板底色。 |
点外面可关闭(Cancelable) |
点面板外面、按返回键或向外滑动是否关闭面板。为假时只能用「关闭」方法关闭(适合必须作答的面板)。 |
圆角半径(CornerRadius) |
面板圆角半径(像素)。底部滑出时只有上面两个角是圆的。 |
模式(Mode) |
弹出方式:bottom 从底部滑出(铺满宽度),center 居中弹出(对话框),left / right 从左侧 / 右侧滑出的侧边抽屉(铺满高度,宽度为屏幕的 80%)。 |
显示中(Showing) |
面板当前是否显示着。 |
关闭(Hide) |
播放反向动画关闭面板,结束后触发已关闭事件。 |
设置内容(布局)(SetContent) |
指定面板里显示的布局(通常是一个垂直布局)。这个布局会从屏幕上挪进面板,不再占原来的位置;可以多次调用换成别的布局。 |
显示(Show) |
显示面板。还没有「设置内容」时会报错提示。 |
已关闭(Closed) |
关闭动画完成后触发(调用「关闭」、点面板外面、按返回键或向外滑动关闭都会触发)。 |
已打开(Opened) |
面板显示出来时触发。 |
常见问题与验收
| 检查项 | 操作与预期 |
|---|---|
| 初始化 | 对照案例检查是否已经调用加载、注册、连接或显示方法;仅拖入组件不会替你执行这些步骤。 |
| 结果返回 | 将成功事件和失败事件都接到标签,记录事件参数;异步操作完成前不读取结果属性。 |
| 输入配置 | 检查素材名大小写、网址是否为直接资源地址、文件是否存在、编号和索引是否在范围内。 |
| 平台与权限 | 按组件参考中的平台说明测试;授权被拒绝时应有明确提示,不继续假定操作成功。 |
| 最小案例 | 先验证页面中的最小案例,再验证第二个场景;重复操作、取消、返回屏幕后结果应符合事件说明。 |
完整 .aia 源码与操作指导
导入 PopupPanelAllFeatures.aia,连接伴侣或编译安装。本轮没有真机/伴侣实测。
初始模式为左侧菜单,不允许点外面关闭。打开后请用菜单内“关闭菜单”返回,也可先勾选“允许点遮罩、返回键及手势关闭”。
| API / 功能 | 操作入口 | 预期结果 |
|---|---|---|
| 模式(Mode) 读取/设置 | 选择四种模式后打开 | 底部、居中、左侧、右侧分别显示;属性区显示内部模式值 |
| 点外面可关闭(Cancelable) 读取/设置 | 勾选/取消允许关闭 | 为真时遮罩、返回键和向外手势可关闭;为假时需要内部关闭按钮 |
| 圆角半径(CornerRadius) 读取/设置 | 拖动圆角滑动条 | 0–48 调整圆角,属性区显示当前值 |
| 背景颜色(BackgroundColor) 读取/设置 | 点切换背景 | 白色和浅蓝色切换,属性区显示颜色值 |
| 显示中(Showing) 读取 | 打开及关闭后看属性区 | 打开为真,关闭动画完成后为假 |
| 设置内容(SetContent) | 点切换内容,再打开 | 大学菜单与地区筛选表单切换,原布局不占屏幕空间 |
| 显示(Show) | 点打开菜单 | 显示当前内容,不重复累计打开事件 |
| 关闭(Hide) | 内部关闭按钮/选择菜单项/应用筛选 | 播放关闭动画,结果区显示选择内容 |
| 已打开/已关闭(Opened / Closed) | 连续打开与关闭 | 日志记录次数,Closed 在关闭动画完成后更新 |
| 关闭动画/滑动关闭 | 允许关闭时点遮罩,或左侧向左、右侧向右、底部向下滑 | 反向收回;短滑回弹,居中模式不使用拖动关闭 |
| 空地区输入 | 切换筛选内容,空输入后应用 | 显示全部地区并关闭 |
| 错误反馈 | 系统/组件派发 Screen.ErrorOccurred | 结果区显示操作、错误码与原因 |
API 覆盖 18/18(4 个设计器配置、9 个属性读写入口、3 个方法、2 个事件);正式编辑器首次导入/保存重开均 0 错误,真实后台导入、安装包编译通过。覆盖检查不替代真机手势测试。
滑动菜单
导入方法:项目 → 导入项目(.aia)→ 选择下载的 .aia 源码文件。 完整覆盖四种模式、替换内容布局、显示/关闭、背景与圆角、是否允许关闭、当前显示状态、打开与关闭事件。面板内既有可点击菜单,也有可填写的筛选表单。 初始是左侧菜单,关闭开关未勾选。面板内始终提供关闭按钮,便于测试禁止遮罩关闭的情况。 | 操作 | 预期结果 | |—|—| | 直接点“打开菜单” | 左侧滑出大学菜单;点内部关闭按钮返回 | | 选择底部/居中/左侧/右侧,再打开 | 观察不同打开方式,属性区显示当前模式 | | 点“切换内容”,再打开 | 换成地区筛选表单;再次切换恢复大学菜单 | | 填地区并点“应用筛选并关闭” | 结果区显示填写的地区;空输入显示全部地区 | | 勾选“允许点遮罩、返回键及手势关闭” | 点空白、按返回键或向外滑动均可关闭 | | 取消上述勾选 | 空白点击、返回键及关闭手势不关闭;内部按钮仍可关闭 | | 拖动圆角滑动条、点“切换背景” | 观察圆角与颜色,属性区显示实际属性值 | | 左侧向左、右侧向右、底部向下滑 | 收回菜单;短滑回弹,居中模式用点击关闭 | | 连续打开与关闭 | 日志分别记录打开/关闭次数;关闭事件在动画完成后出现 | 覆盖检查 18/18:4 个设计器配置、9 个属性读写入口、3 个方法、2 个事件。测试全部功能不需要账号、网络图片或硬件对端。
扫码添加客服咨询