????ViewGroup?????????dispatchKeyEventPreIme???????鵱????????????????????????y???????????y??????????ViewGroup?????????mPrivateFlags??FOCUSEDλ?????1??????????????????????????y????????£???????????????????????????????????С????????ViewGroup?????????mPrivateFlags??HAS_BOUNDSλ??????1?????????????????С?????????y????????£???????????????????????????????event????????????????????????????????????????????丸??View????????dispatchKeyEventPreIme?????????event?????????????????

????????????????????????????????????event????????????????????????????????y??????????????????????????С??????????????????ViewGroup?????????dispatchKeyEventPreIme??????event??????????????????????????????????????????????????????y??????????????ViewGroup?????????mFocused?????????????????????????????????????View???????????dispatchKeyEventPreIme?????????event???????????????????????y??????????????

?????????????????????????????????????????????????????????????????????????????????Pointer????????Pointer?????????????????????????????????????????????????????????????????棬??????????????????????????????

????????????????????????????????????????????????y??????????????????y???????????????View?????????dispatchKeyEventPreIme?????????????????event?????????????????????????????????????View?????????dispatchKeyEventPreIme??????

????Step 3. View.dispatchKeyEventPreIme

????[java] view plaincopyprint?

????public class View implements Drawable.Callback?? KeyEvent.Callback?? AccessibilityEventSource {

????......

????public boolean dispatchKeyEventPreIme(KeyEvent event) {

????return onKeyPreIme(event.getKeyCode()?? event);

????}

????......

????}

????public class View implements Drawable.Callback?? KeyEvent.Callback?? AccessibilityEventSource {

????......

????public boolean dispatchKeyEventPreIme(KeyEvent event) {

????return onKeyPreIme(event.getKeyCode()?? event);

????}

????......

????}

????????????????????frameworks/base/core/java/android/view/View.java?С?

????View?????????dispatchKeyEventPreIme???????????????????????????????????onKeyPreIme?????????????????event????????????????

????Step 4. View.onKeyPreIme

????[java] view plaincopyprint?

????public class View implements Drawable.Callback?? KeyEvent.Callback?? AccessibilityEventSource {

????......

????public boolean onKeyPreIme(int keyCode?? KeyEvent event) {

????return false;

????}

????......

????}

????public class View implements Drawable.Callback?? KeyEvent.Callback?? AccessibilityEventSource {

????......

????public boolean onKeyPreIme(int keyCode?? KeyEvent event) {

????return false;

????}

????......

????}

????????????????????frameworks/base/core/java/android/view/View.java?С?

????View?????????onKeyPreIme???????????????????????event????????????????????????????????????????????????????????????????????????????д????View????????onKeyPreIme??????д????View????????onKeyPreIme???????????????????????????????????????????????????????????????true??????????????????false???

??????????赱???y???????1?????TextView?????????????TextView???????д?丸??View????????onKeyPreIme??????????event????????????????????????????????????????????????????

?????????????????????????Step 1?У???ViewRoot?????????deliverKeyEvent?У????????????????????????????????????????????????????ViewRoot?????????deliverKeyEventToViewHierarchy?????????ü??????????????????????????