2012-08-17 82 views
1

我正在使用GLSurfaceView渲染我的GUI。在一种情况下,我需要用户输入一个数字,并且为了实现这个功能,我在顶部使用了一个FrameLayout,在其上面使用了一个带有EditText的虚拟布局。当需要输入时,我将EditText对焦并强制显示软键盘。然后,我听各种方式来结束输入,输入密钥,IME_ACTION_DONE,后退键等。检查软键盘是否关闭

但是我刚刚意识到这种情况不起作用。在某些键盘上有一个“隐藏键盘”按钮,它根本不发送键码(有些键从这个键发回键码)。键盘刚刚关闭,我无法确定输入是否完成。 EditText仍然是重点。

有没有什么办法可以捕捉到这个事件,或者其他任何方式来查看用户是否关闭了键盘?

+0

我想你可以检查你的视图的onSizeChanged()。 – 2012-08-17 14:04:58

+0

该视图是一个GLSurfaceView,它不是也不应该改变大小。软键盘只出现在视图的顶部。我应该尝试检查onSizeChanged吗?? – cmbellman 2012-08-18 09:46:13

+0

我的建议是基于[这个答案](http://stackoverflow.com/a/3828646/1117415)。但我没有使用'GLSurfaceView'的经验。不会伤害尝试。 – 2012-08-19 12:31:07

回答

0

有时你必须在盒子外面思考..我找不到任何方法来查看键盘在某些情况下是否被用户隐藏。也许没有办法。所以我开始考虑如何在具有输入字段等的“正常”xml布局中工作。因为我从来没有想过这是一个问题。答案很简单。这些表格总是有一个“完成”,“保存”,“更新”或类似的按钮。

所以..我刚刚结束了添加一个按钮作为额外的选项,让用户告诉我的应用程序他们完成了输入。 :)