2016-06-08 58 views
0

我想通過將我的課程擴展到EditText來創建我的自定義EditText。我想重寫我的自定義EditText一些touchevents。edittext的ontouchevent()如何工作?

任何人都可以解釋我,默認EditText的默認觸摸事件是如何工作的?就像當我們對EditText,這MotionEvent被觸發點擊顯示鍵盤輸入文字等

我看過的EditText的文檔,創建自定義視圖,onTouchEvent(),不同的運動事件,如ACTION_DOWNACTION_MOVE

我只想知道默認的工作EditText

回答

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

只是嘗試一下 - 覆蓋你感興趣的所有事件,並顯示一些日誌消息(例如Log.i(TAG, "action down");

+0

這隻會有助於理解的onTouchEvent目前實行()不是它是如何在控制的EditText實施。 – kTT

+0

好 - 謝謝! – Katharina

相關問題