Android 设置DrawableRight和DrawableLeft 点击事件
Posted Taserio-xie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 设置DrawableRight和DrawableLeft 点击事件相关的知识,希望对你有一定的参考价值。
android 设置DrawableRight和DrawableLeft 点击事件
Android的TextView有个DrawableLeft和DrawableRight属性,UI布局中经常会用到。比如登陆界面,用户名和密码前面的图像,就是用DrawableLeft来设置的。
但比较郁闷的是,Android并没有为DrawableLeft和DrawableRight提供监听点击事件的api,但这个需求是很常见的,比如输入密码的时候,点击右边的眼睛,密码变为明文。
其实思路很简单,我们只要重写EditText的onTouchEvent,捕捉到点击事件,然后判断用户点击的位置是否点击到图标即可,不废话,用代码说话。
详细代码请见Github(若有更新只在github更新)
先创建一个类,继承EditText,如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
/**
* 加强版的EditText,可以响应DrawableLeft 和 DrawableRight的点击事件
* 要实现响应点击,先设置setDrawableListener
* @author xing
* @version 1.1
*/
public
class
XEditText
extends
EditText
private
DrawableLeftListener
mLeftListener
;
private
DrawableRightListener
mRightListener
;
final
int
DRAWABLE_LEFT
=
0
;
final
int
DRAWABLE_TOP
=
1
;
final
int
DRAWABLE_RIGHT
=
2
;
final
int
DRAWABLE_BOTTOM
=
3
;
@SuppressLint
(
"NewApi"
)
public
XEditText
(
Context
context
,
AttributeSet
attrs
,
int
defStyleAttr
,
int
defStyleRes
)
super
(
context
,
attrs
,
defStyleAttr
,
defStyleRes
)
;
public
XEditText
(
Context
context
,
AttributeSet
attrs
,
int
defStyleAttr
)
super
(
context
,
attrs
,
defStyleAttr
)
;
public
XEditText
(
Context
旋转 TextView DrawableRight OnClick
如何在Kotlin中处理EditText drawableRight图标的点击监听器? |