安卓提供的onKey()、OnKeyDown()和dispatchKeyEvent()方法的区别



Android提供的onKey((、OnKeyDown((和dispatchKeyEvent((方法有什么区别
我想知道何时何地可以使用这些
请澄清一下。

跟踪视图类的5.1源代码。似乎dispatchKeyEvent()是系统调用的第一个方法。重载它将阻止调用任何和所有关键事件,除非调用基本版本。

dispatchKeyEvent()的第一步是尝试将事件传递给onKeyListener(如果有(。此时调用onKey()。如果onKey()实现返回true,则dispatchKeyEvent()将返回,并且不会调用其他事件。

如果没有onKeyListeneronKeyListeneronKey()方法返回false,则dispatchKeyEvent()将调用KeyEventdispatch()方法。然后它将依次调用视图中KeyEvent.Callback接口中的所有方法。这包括onKeyDown()onKeyUp()

DispatchKeyEvent硬件关键事件始终传递到当前处于焦点的视图。它们从视图层次结构的顶部开始调度,然后向下调度,直到到达适当的目的地。如果您的视图(或视图的子视图(当前具有焦点,那么您可以通过dispatchKeyEvent((方法看到事件的传播。简而言之,只有当TextView/EditText处于焦点时,才会调用dispatchKeyEvent((。

onKeyDown当按下某个键时调用,并且该键未由活动内部的任何视图处理

相关内容

  • 没有找到相关文章

最新更新