我已经实现了自定义 EditText,我想在其中点击所有 CompoundDrawables。我已经成功获得左右可绘制点击。
我也获得了部分成功来获得顶部可绘制点击。
这是我的 EditText 图片:
我得到了什么: 我成功获得了红色矩形覆盖的顶部区域的点击事件(TouchEvent)。这是相同的代码。
代码:
override fun onTouchEvent(event: MotionEvent): Boolean {
var bounds: Rect?
if (event.action == MotionEvent.ACTION_DOWN) {
positionX = event.x.toInt()
positionY = event.y.toInt()
if (drawableTop != null) {
bounds = drawableTop!!.bounds
val xClickPosition: Int = positionX
val yClickPosition: Int = positionY
val extraClickingArea = 13
if (xClickPosition >= (paddingLeft - extraClickingArea)) {
if (xClickPosition <= (width - paddingRight + extraClickingArea)) {
if (yClickPosition >= (paddingTop - extraClickingArea)) {
if (yClickPosition <= (paddingTop + bounds.height() + extraClickingArea)) {
//I have to get Only Top drawable Bound here
onDrawableClickListener!!.onClick(DrawablePosition.TOP)
event.action = MotionEvent.ACTION_CANCEL
return false
}
}
}
}
}
}
return super.onTouchEvent(event)
}
我想要的是:
但我只想要绿色矩形覆盖的点击事件。
编辑文本图像:
我怎样才能做到这一点?