【问题标题】:Check if soft keyboard was closed检查软键盘是否关闭
【发布时间】:2012-08-17 14:00:30
【问题描述】:

我有一个 GLSurfaceView 来渲染我的 GUI。在一种情况下,我需要用户输入一个数字,为​​了实现这一点,我使用了一个 FrameLayout,我的 GLSurfaceView 在上面,另一个虚拟布局后面有一个 EditText。当需要输入时,我聚焦 EditText 并强制显示软键盘。然后我会听各种方式来结束输入,回车键、IME_ACTION_DONE、后退键等。

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

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

【问题讨论】:

  • 我想你可以检查一下你的视图的 onSizeChanged()。
  • 视图是一个 GLSurfaceView,它不会也不应该改变大小。软键盘仅出现在视图顶部。我是否应该尝试检查 onSizeChanged ..?
  • 我的建议是基于this answer。但我对GLSurfaceView 没有经验。试一试也无妨。

标签: android opengl-es input android-softkeyboard glsurfaceview


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-22
    • 1970-01-01
    • 2012-01-21
    相关资源
    最近更新 更多