Android???TextView???????????
???????????? ???????[ 2013/5/16 10:28:29 ] ????????
????Step 5. ViewRoot.deliverKeyEventToViewHierarchy
????[java] view plaincopyprint?
????public final class ViewRoot extends Handler implements ViewParent??
????View.AttachInfo.Callbacks {
????......
????private void deliverKeyEventToViewHierarchy(KeyEvent event?? boolean sendDone) {
????try {
????if (mView != null && mAdded) {
????final int action = event.getAction();
????boolean isDown = (action == KeyEvent.ACTION_DOWN);
????......
????boolean keyHandled = mView.dispatchKeyEvent(event);
????if (!keyHandled && isDown) {
????int direction = 0;
????switch (event.getKeyCode()) {
????case KeyEvent.KEYCODE_DPAD_LEFT:
????direction = View.FOCUS_LEFT;
????break;
????case KeyEvent.KEYCODE_DPAD_RIGHT:
????direction = View.FOCUS_RIGHT;
????break;
????case KeyEvent.KEYCODE_DPAD_UP:
????direction = View.FOCUS_UP;
????break;
????case KeyEvent.KEYCODE_DPAD_DOWN:
????direction = View.FOCUS_DOWN;
????break;
????}
????if (direction != 0) {
????View focused = mView != null ? mView.findFocus() : null;
????if (focused != null) {
????View v = focused.focusSearch(direction);
????......
????if (v != null && v != focused) {
????......
????focusPassed = v.requestFocus(direction?? mTempRect);
????}
????......
????}
????}
????}
????}
????} finally {
????if (sendDone) {
????finishInputEvent();
????}
????......
????}
????}
????......
????}
????public final class ViewRoot extends Handler implements ViewParent??
????View.AttachInfo.Callbacks {
????......
????private void deliverKeyEventToViewHierarchy(KeyEvent event?? boolean sendDone) {
????try {
????if (mView != null && mAdded) {
????final int action = event.getAction();
????boolean isDown = (action == KeyEvent.ACTION_DOWN);
????......
????boolean keyHandled = mView.dispatchKeyEvent(event);
????if (!keyHandled && isDown) {
????int direction = 0;
????switch (event.getKeyCode()) {
????case KeyEvent.KEYCODE_DPAD_LEFT:
????direction = View.FOCUS_LEFT;
????break;
????case KeyEvent.KEYCODE_DPAD_RIGHT:
????direction = View.FOCUS_RIGHT;
????break;
????case KeyEvent.KEYCODE_DPAD_UP:
????direction = View.FOCUS_UP;
????break;
????case KeyEvent.KEYCODE_DPAD_DOWN:
????direction = View.FOCUS_DOWN;
????break;
????}
????if (direction != 0) {
????View focused = mView != null ? mView.findFocus() : null;
????if (focused != null) {
????View v = focused.focusSearch(direction);
????......
????if (v != null && v != focused) {
????......
????focusPassed = v.requestFocus(direction?? mTempRect);
????}
????......
????}
????}
????}
????}
????} finally {
????if (sendDone) {
????finishInputEvent();
????}
????......
????}
????}
????......
????}
????????????????????frameworks/base/core/java/android/view/ViewRoot.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