第 54 课2026.09.16
让按钮读取 Handle 的关闭事实,为后续点击交互准备禁用条件。
第 54 课:根据关闭状态禁用按钮
- 日期:2026-09-16
- 课程序号:第 54 课
- 知识点:根据关闭状态禁用按钮
用途
让按钮读取 Handle 的关闭事实,为后续点击交互准备禁用条件。
核心概念
Button.enabled 接收 boolean;closed 仍由 Handle 单一持有。本课只显示当前状态,状态变化后的界面刷新在第 56 课加入。
最小代码或操作示例
ts
@Entry
@Component
struct ClosePage {
private handle: Handle = new Handle(async (): Promise<void> => {})
build() {
Button(this.handle.isClosed() ? '已关闭' : '关闭')
.enabled(!this.handle.isClosed())
}
}3~5 分钟练习
暂时把 .enabled(!this.handle.isClosed()) 改成 .enabled(this.handle.isClosed()),观察新建 Handle 对应的按钮为何不可点击,再恢复原条件。
参考答案
新建 Handle 的 isClosed() 为 false;直接作为 enabled 参数会禁用按钮。恢复取反后,未关闭时可点击、已关闭时才禁用;本课不处理运行中的状态变化。
与上一课的联系
继承第 53 课完整的 Handle 及 isClosed() 方法;本课只让按钮在初次构建时读取这一事实;下一课可增加点击触发关闭。
时效校验
时效校验:2026-09-24(华为当前 Button 与禁用控制文档;本机 HarmonyOS 26.0.0/API 26 SDK)。Button 与 enabled 自 API 7 可用,本机声明未见 @deprecated 或 @useinstead。