设置页使用指导

← 返回设置页组件参考 · 全部使用指导

设置页使用指导

把「设置页」拖进屏幕,在「设置项」属性中点「编辑设置项」,逐行添加项目,也可以点「常用设置示例」载入七种项目再修改。 不需要拼接布局,也不需要自己写本地保存积木。安卓与鸿蒙使用相同接口;联机测试需要包含本组件的新版伴侣。

快速上手

将宽度设为填满、高度设为填满,按下面的表配置。编号是代码取值和处理事件的名称,发布后尽量保持稳定。

类型 编号 标题 默认值 候选项或范围
分组标题 general 通用设置 — —
开关 notify 消息提醒 假 —
单选 theme 主题 自动 自动,浅色,暗色
多选 channels 接收内容 消息 消息,公告
输入 nickname 昵称 用户 —
滑块 volume 音量 50 最小 0,最大 100,步长 1
操作项 clear 清理缓存 — —

候选项和多选默认值在单行输入框中填写,多个选项用英文逗号 , 分隔,不换行。滑块分别填写最小值、最大值和步长。

「自动保存」默认开启,「存储名称」默认 Settings。用户修改后,下次打开会恢复保存的值。 保存设置与执行业务是两步:开关值保存了,还需要在初始化和设置改变事件中连接自己的提醒、主题或播放器逻辑。

下面用一个标签显示是否允许消息提醒;标签不会自动代表系统通知权限。

when Screen1.Initialize() {
  if 设置页1.GetValue("notify", false) {
    标签1.Text = "允许消息提醒"
  } else {
    标签1.Text = "消息提醒已关闭"
  }
}

when 设置页1.SettingChanged(键, 旧值, 新值) {
  if 键 == "notify" {
    if 新值 {
      标签1.Text = "允许消息提醒"
    } else {
      标签1.Text = "消息提醒已关闭"
    }
  }
}

when 设置页1.ActionClicked(键) {
  if 键 == "clear" {
    设置页1.SetSummary("clear", "请连接你自己的缓存清理逻辑")
  }
}

「清理缓存」是操作项,只派发事件;组件不会擅自删除文件。多个操作项可用编号区分。

修改值与恢复默认

  • GetValue(编号, 备用值):开关返回真/假,滑块返回数字,单选和输入返回文本,多选返回列表。编号不存在或没有值时返回备用值。
  • SetValue(编号, 值):代码设置也按「自动保存」属性保存,但不触发「设置改变」,适合初始化或联动。
  • ResetDefaults():弹出确认,确认后恢复当前列表的默认值;实际改变的项目逐项触发「设置改变」。隐藏、禁用的项目也会恢复。
  • 不同屏幕设置相同「存储名称」和编号,可共享设置值。不同名称互相独立。
  • 关闭「自动保存」后只保留当前组件内存中的值,需要持久化时在「设置改变」事件自行保存。切换存储名称会重新载入对应设置。

进阶:动态配置

用「设置全部设置项」传入字典列表。每个字典可包含下列字段:

字段 含义
key 唯一文本编号,必填
type group、switch、single、multi、input、slider、action;省略时为 action
title / summary 标题 / 说明,标题省略时显示编号
default 默认值,类型与项目一致
options single、multi 的候选文本列表,不允许重复
min / max / step slider 最小值、最大值、步长;默认 0 / 100 / 1
visible / enabled 是否显示 / 启用,默认真

可用「添加项」添加一个字典,用「移除项目」移除界面项目。移除后保存值保留,重新加入同编号即可恢复。 配置无效时触发「错误发生」,原列表保留。候选项更新后原值不再合法时,回到当前默认值。

「设置说明」「设置项目可见」「设置项目启用」可在运行中控制项目,例如关闭消息提醒时禁用提醒方式。 这些操作修改当前界面配置,不会保存配置定义;重新启动仍从设计器或初始化积木载入项目。

使用注意

  • 修改标题、说明、顺序不会改变已保存的值;修改编号相当于新设置项。
  • 候选项文本就是保存值,修改候选项文本后旧值可能失效;升级前应考虑迁移。
  • 滑块值会夹紧到范围内,再按步长取整;最多允许 10000 个步长。
  • 「默认」文字和背景颜色跟随应用主题;也可设置颜色和字号。
  • 本机保存没有加密,适用于普通偏好,不要用来保存密码或访问令牌。伴侣内测试的多个项目可能共享数据,用不同存储名称区分。
  • 多选默认值和候选项都在表格中每行填写一个文本。

案例:按钮恢复默认设置

已有表格配置和自动保存案例基础上,加一个恢复按钮和状态标签。点击后回到配置的默认值;再次进入屏幕核对保存状态。

when 按钮_恢复默认.Click() {
  设置页1.ResetDefaults()
  标签1.Text = join("当前主题:", 设置页1.GetValue("theme", "自动"))
}
when 设置页1.ErrorOccurred(操作, 消息) {
  标签1.Text = join(操作, ":", 消息)
}

theme 必须与表格中设置项的编号一致。恢复默认值与删除设置项不同;不要用修改显示标题代替稳定编号。

完整 .aia 源码与操作指导

下载 .aia 源码

设备控制应用的七种常见设置可直接修改,自动保存使用本案例独立名称;初始化不会覆盖用户已经保存的昵称、主题和音量。上方设置区可独立操作,下方控制区可滚动。

导入 SettingsListAllFeatures.aia,连接最新伴侣,或编译独立安装包。真机/伴侣运行尚未实测。

API / 功能 操作入口 预期结果
七类设置、SettingChanged 逐项修改开关、单选、多选、输入和滑块;操作项点清除日志 日志给出真实编号、旧值、新值;清除只清空显示
AutoSave、StorageName 先修改昵称,再关掉重开;切换到另一个存储名称 自动保存开启时恢复;不同存储相互独立,关闭保存时不承诺重启保存
GetValue、SetValue、SetSummary 点读取、代码设值 昵称桌面温度计、音量65;代码设值不制造设置改变事件
AddItem、RemoveItem 添加、再次添加、移除、重新添加 不重复添加;同键存储值可能恢复
SetSettingsItems、SettingsItems 字典重载、JSON重载 七类定义真实重载,动态项移除;保存值仍按编号恢复
SetItemEnabled、SetItemVisible 切换联动,再切回 关注内容禁用、音量隐藏,再恢复
ResetDefaults 点击并先取消,再点确认 取消保留值;确认后实际变更项目触发设置改变
ErrorOccurred 点非法测试 未知编号及重复编号显示错误,原有效配置保留
BackgroundColor、TextColor、FontSize 切换外观 对应颜色字号真实更改、读回属性
Visible、Left、Top、Width、Height、WidthPercent、HeightPercent 外部控制区隐藏、像素、百分比按钮 外部控制不消失,可恢复目标;尺寸读回
设计器配置 打开设计器查看设置项表与全部属性 实际定义七种设置,初始化恢复可见和自动保存

所有返回值均用于界面反馈,错误由底部错误区展示。设计器采用明确非默认配置,初始化与界面同步。API 覆盖检查按最终 AIA 检查方法、事件、属性读取与设置及设计器配置,不能替代真实设备验证。

设备设置页

导入方法:项目 → 导入项目(.aia)→ 选择下载的 .aia 源码文件。 设备控制应用的七种常见设置可直接修改,自动保存使用本案例独立名称;初始化不会覆盖用户已经保存的昵称、主题和音量。上方设置区可独立操作,下方控制区可滚动。 覆盖检查 45/45。首次载入及保存重开均0个错误,真实后台导入、安装包编译通过;真机/伴侣/硬件联调尚未实测。全部属性读写、方法与事件的操作入口和预期结果见组件指导。

文档反馈