我想通过将我的课程扩展到EditText
来创建自定义EditText
。我想覆盖自定义EditText
的一些touchevents。
任何人都可以解释一下,默认EditText
的默认触摸事件是如何工作的?就像我们点击EditText
,MotionEvent
被触发以显示键盘输入文字等。
我已阅读EditText的文档,创建自定义视图onTouchEvent()
,不同的动作事件,例如ACTION_DOWN
,ACTION_MOVE
等。
我只是想知道默认EditText
的工作情况。
答案 0 :(得分:0)
检查Android存储库上的EditText的实现:https://github.com/android/platform_frameworks_base/blob/master/core/java/android/widget/EditText.java。
看起来EditText从TextView继承onTouchEvent实现。您可以直接查看代码https://github.com/android/platform_frameworks_base/blob/master/core/java/android/widget/TextView.java#L8272。
,查看其行为方式例如,负责显示键盘的部分代码:
if (touchIsFinished && (isTextEditable() || textIsSelectable)) {
// Show the IME, except when selecting in read-only text.
final InputMethodManager imm = InputMethodManager.peekInstance();
viewClicked(imm);
if (!textIsSelectable && mEditor.mShowSoftInputOnFocus) {
handled |= imm != null && imm.showSoftInput(this, 0);
}
// The above condition ensures that the mEditor is not null
mEditor.onTouchUpEvent(event);
handled = true;
}
答案 1 :(得分:-1)
试一试 - 覆盖您感兴趣的所有事件并显示一些日志消息(例如Log.i(TAG, "action down");
)