【问题标题】:touchEvent while typing with soft keyboard android使用软键盘android打字时的touchEvent
【发布时间】:2014-09-21 16:16:24
【问题描述】:

在我的应用程序中,我希望在用户使用他的软键盘在 TextView 上键入时接收 touchEvent(MotionEvent) 事件。我已经尝试在主要活动上使用 dispatchTouchEvent(MotionEvent) ,但是在键入期间不会触发此事件。有办法处理吗?

编辑: 主要思想是从软键中获得两个不同的事件,一个用于提交的字母(例如使用 keyUp 和 keyDown),另一个与触摸相关,如 dispatchTouchEvent,因为当您按下一个字母时,您会触摸屏幕,这意味着你应该出现一个 dispatchTouchEvent 或类似的东西。

【问题讨论】:

    标签: android touch android-softkeyboard touch-event


    【解决方案1】:

    无法从软键盘获取触摸事件,因为 Android 键盘基本上是独立的 Android 应用,它们已经使用了它们的触摸事件。但是,您可以使用 onKeyDownonKeyUp 事件对他们的按键做出反应。另见http://developer.android.com/training/keyboard-input/commands.html

    【讨论】:

    • 而且没有办法覆盖这种行为??例如,创建我的自定义软键盘以与 EditText 一起使用并仅覆盖有趣的方法?此外,onKeyDown 和 onKeyUp 通常由硬件键盘触发,而不是像软键盘这样的软件。
    • onKeyDownonKeyUp 也应该为软键盘触发。最后请说明您想要实现的目标。
    • 我想要事件..或至少一个..一个用于用户在键盘上单击的内容('a'、'b' 或其他)和另一个涉及到触摸的事件(因此,一种与软键盘字符的触摸相关的 dispatchTouchEvent)。
    • 请在您的问题中添加代码,显示您如何处理onKeyDownonKeyUp。我仍然不清楚你的目标为什么需要触摸事件。也许您的目标可以通过不同的方式实现。
    • @LarsBlumberg 在文档中明确指出onKeyDownonKeyUp 不适用于软件键盘。此外,第一个也不适用于大多数键。即使确实如此,它也不能真正解决他和我的问题。我需要用户触摸屏幕和释放按钮的时间。这两种方法即使使用dispatchKeyEvent 也不会提供该结果。
    猜你喜欢
    • 1970-01-01
    • 2011-03-14
    • 2017-11-23
    • 2013-10-08
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多