EditText新增drawableXXX的點選事件
阿新 • • 發佈:2019-01-27
- EditText提供了drawableXXX屬性來設定控制元件的個位置的圖片顯示,但是沒有提供響應的點選事件處理。
- 首先要考慮的問題是如何在java程式碼中獲取點選的範圍是否在圖示範圍內。getTotalPaddingXXX方法提供了包含drawableXXX在內的距離,而getPaddingXXX返回檢視距響應方向的距離。所以就可以判斷是否在圖示內點選。
boolean touchable = event.getX() > (getWidth() - getTotalPaddingRight())&& (event.getX() < ((getWidth() - getPaddingRight())));
- 所以重寫onTouchEvent方法,我需要根據當前輸入型別來判斷是否需要明暗文切換
public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_UP) { if (getCompoundDrawables()[2] != null) { boolean touchable = event.getX() > (getWidth() - getTotalPaddingRight()) && (event
- 最好還是通過介面的形式讓外部傳入相應的點選事件。