Android???TextView???????????
???????????? ???????[ 2013/5/16 10:28:29 ] ????????
????????event????????????????????????????????????sendDone????ü??????????????????????????????????????????????
????ViewRoot?????????mView?????????????????????????????????DecorView????ViewRoot?????????deliverKeyEvent???????????????????dispatchKeyEventPreIme???????????????????????event??????????????????????DecorView???????????dispatchKeyEventPreIme??????handled????true????????????event???????????????????????????ViewRoot?????????deliverKeyEvent????????????????????????£????????sendDone???????true?????ViewRoot?????????deliverKeyEvent???????????????ó??????finishInputEvent?????????????????????????????????????????????????????????????????Step 2??Step 4?У????????????????????????????????????????????????
???????貳???????????????????event??????????????????????ViewRoot?????????deliverKeyEvent???ü???????????????????????????????????????
????1. ????InputMethodManager????????????peekInstance???????????InputMethodManager??????????imm;
????2. ????ViewRoot?????????enqueuePendingEvent??????event??????????????????????????????????????ü?????????????????????д???;
????3. ?????1????????????????imm????????dispatchKeyEvent????????event????????????????????????????
???????????????????????????????????????е???????????????????????£?ViewRoot?????????deliverKeyEvent???????event??????????????????????????????????????ViewRoot?????????mLastWasImTarget?????????true?????????????????????????event??????????????????????????????ViewRoot?????????deliverKeyEvent????????????????InputMethodCallback???????????????????????????????event????????????????????????????????????????finishedEvent??????????????????????????????????????InputMethodCallback????????????ViewRoot?????????mInputMethodCallback?У?????????????finishedEvent?????????????????ViewRoot?????????deliverKeyEventToViewHierarchy????????????event???????????????????????????
????????????????????????????????ViewRoot?????????mLastWasImTarget???????false?????ViewRoot?????????deliverKeyEvent???????ó??????deliverKeyEventToViewHierarchy????????event???????????????????????????
????????????????????????????????????????????????????????????????????????????????????
??????????????????????ViewRoot?????????deliverKeyEvent?????????DecorView?????????dispatchKeyEventPreIme???????????????????????????????????????DecorView?????????dispatchKeyEventPreIme??????ViewGroup???????????????????????????????ViewGroup?????????dispatchKeyEventPreIme??????
????Step 2. ViewGroup.dispatchKeyEventPreIme
????[java] view plaincopyprint?
????public abstract class ViewGroup extends View implements ViewParent?? ViewManager {
????......
????// The view contained within this ViewGroup that has or contains focus.
????private View mFocused;
????......
????@Override
????public boolean dispatchKeyEventPreIme(KeyEvent event) {
????if ((mPrivateFlags & (FOCUSED | HAS_BOUNDS)) == (FOCUSED | HAS_BOUNDS)) {
????return super.dispatchKeyEventPreIme(event);
????} else if (mFocused != null && (mFocused.mPrivateFlags & HAS_BOUNDS) == HAS_BOUNDS) {
????return mFocused.dispatchKeyEventPreIme(event);
????}
????return false;
????}
????......
????}
????public abstract class ViewGroup extends View implements ViewParent?? ViewManager {
????......
????// The view contained within this ViewGroup that has or contains focus.
????private View mFocused;
????......
????@Override
????public boolean dispatchKeyEventPreIme(KeyEvent event) {
????if ((mPrivateFlags & (FOCUSED | HAS_BOUNDS)) == (FOCUSED | HAS_BOUNDS)) {
????return super.dispatchKeyEventPreIme(event);
????} else if (mFocused != null && (mFocused.mPrivateFlags & HAS_BOUNDS) == HAS_BOUNDS) {
????return mFocused.dispatchKeyEventPreIme(event);
????}
????return false;
????}
????......
????}
????????????????????frameworks/base/core/java/android/view/ViewGroup.java?С?
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11