ViewGroup的dispatchKeyEvent解析
前一篇View的dispatchKeyEvent解析留下两个问题:1.KeyEvent是怎么产生的?2.KeyEvent是怎么传递的?第一个问题还有点懵逼,以后再解吧;第二个问题倒是有了点眉目。来看看ViewGroup的dispatchKeyEvent函数(API-26)吧。
概述
先纠正一下自己一直以来对这个类的错误读法,以前总把它念成ViewGroup,其实应该是ViewGroup. 虽然ViewGroup也继承自View,但Google工程师更想强调的它是个Group而非View吧。
言归正传,ViewGroup的dispatcheKeyEvent总的来说干了这么一件事,它将KeyEvent沿着Focused Path进行传递,一直到那个真正focued的View上,然后调用该View的disptchKeyEvent方法。想知道View的dispatchKeyEvent干了个啥,可以参见View的dispatchKeyEvent解析
源码跟踪
先贴总代码:
public boolean dispatchKeyEvent(KeyEvent event) {
if (mInputEventConsistencyVerifier != null