NDK中怎么得知某些输入法的"向下隐藏"按钮被按下
NDK中如何得知某些输入法的"向下隐藏"按钮被按下?
http://img.my.****.net/uploads/201311/14/1384440677_8134.jpg
http://img.my.****.net/uploads/201311/14/1384440677_8134.jpg
就是图中红框框住的按钮,当点击它,输入法会被隐藏,程序如何知道这件事呢?或者判断输入法状态(是否现实中)也可以.
用IMM.isActive 判断发现始终是 True (IMM 是 INPUT_METHOD_SERVICE)
View添加setOnVKStateChangeListener 也拦截不到 (只能拦截到程序主动显示/隐藏的动作)
AKeyEvent_getKeyCode取按键消息中也没这个 (只能收到回车/返回/菜单等按键)
------解决方案--------------------
这个问题我也遇到过,但似乎还没有很好的解决办法。据我了解,这个隐藏按钮是输入法自己设置的,不是系统规定的,所以它的触发事件不会被系统响应。
我的处理方法:
1.如果响应隐藏按钮是为了关闭EditText,那可以在屏幕上显示EditText,让用户自行关闭EditText
2.可以通过监听返回键来判断是否关闭输入法。
这两种方法都是绕弯路,并且没能直接解决监听隐藏按钮的问题。
http://img.my.****.net/uploads/201311/14/1384440677_8134.jpg
http://img.my.****.net/uploads/201311/14/1384440677_8134.jpg
就是图中红框框住的按钮,当点击它,输入法会被隐藏,程序如何知道这件事呢?或者判断输入法状态(是否现实中)也可以.
用IMM.isActive 判断发现始终是 True (IMM 是 INPUT_METHOD_SERVICE)
View添加setOnVKStateChangeListener 也拦截不到 (只能拦截到程序主动显示/隐藏的动作)
AKeyEvent_getKeyCode取按键消息中也没这个 (只能收到回车/返回/菜单等按键)
------解决方案--------------------
这个问题我也遇到过,但似乎还没有很好的解决办法。据我了解,这个隐藏按钮是输入法自己设置的,不是系统规定的,所以它的触发事件不会被系统响应。
我的处理方法:
1.如果响应隐藏按钮是为了关闭EditText,那可以在屏幕上显示EditText,让用户自行关闭EditText
2.可以通过监听返回键来判断是否关闭输入法。
这两种方法都是绕弯路,并且没能直接解决监听隐藏按钮的问题。