You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Wear OS自定义Android键盘:内置按钮隐藏及文本提交问题

Wear OS Compose自定义键盘:隐藏键盘与文本提交方案

一、正确隐藏键盘的实现

你之前的代码核心问题是手动实例化IMEService——自己创建的IMEService对象并不是当前系统正在运行的IME服务实例,调用它的方法完全无效。Wear OS + Compose环境下,直接用官方提供的API就能搞定:

在自定义键盘的Compose组件中,通过LocalSoftwareKeyboardController直接调用hide()方法即可:

// 在你的键盘按钮点击事件中
val keyboardController = LocalSoftwareKeyboardController.current
keyboardController?.hide()

这个API是Compose专为软键盘控制设计的,无需绕弯操作输入连接或IME服务实例,适配Wear OS全屏键盘场景的效果直接可靠。

二、向文本框提交文本的正确方式

提交文本需要借助InputConnection完成键盘与输入框的文本交互。在Compose的IME布局中,通过LocalInputConnection.current获取当前有效的输入连接,再调用commitText方法提交内容:

val inputConnection = LocalInputConnection.current
val keyboardController = LocalSoftwareKeyboardController.current

// 提交文本的点击事件处理
fun submitText(input: String) {
    // 将文本插入光标位置,第二个参数1表示光标停在文本末尾
    inputConnection?.commitText(input, 1)
    // 提交后隐藏键盘(可选操作)
    keyboardController?.hide()
}

如果需要触发输入框的"完成"动作(比如触发文本框的onDone回调),可以在提交文本后调用:

inputConnection?.performEditorAction(EditorInfo.IME_ACTION_DONE)

注意前提是目标输入框的imeOptions已设置为IME_ACTION_DONE。

内容的提问来源于stack exchange,提问作者Angel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 02:43:14