在HarmonyOS NEXT开发中键盘收起的事件能监听到么?
在 HarmonyOS NEXT 开发中,可以通过以下两种方式监听键盘收起事件:
通过 TextInput 组件的事件监听
TextInput()
.onEditChange((isEditing: boolean) => {
if (!isEditing) {
// 键盘收起时触发的逻辑
console.log("Keyboard dismissed");
}
})
通过窗口变化监听
import window from '@ohos.window';
// 获取窗口实例后监听尺寸变化
window.getLastWindow(this.context).then((windowObj) => {
windowObj.on('windowSizeChange', (info) => {
// 通过窗口高度变化判断键盘状态
if (info.height > previousHeight) {
console.log("Keyboard dismissed");
}
});
});
注意事项:
onEditChange
方式,这是官方推荐的标准做法focusControl
) 使用更可靠这两种方式都需要 API version 9 及以上版本支持,建议在真机环境进行完整测试。
监听键盘出现和隐藏可以通过window.on(‘keyboardHeightChange’)事件实现,返回高度为0表示键盘隐藏,不为0表示弹出键盘,每次弹出或隐藏键盘均只触发一次。
参考文档:on(‘keyboardHeightChange’)