0

我已经实现了自定义 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)
    }

我想要的是:

但我只想要绿色矩形覆盖的点击事件。

编辑文本图像:

普通 EditText 图像

我怎样才能做到这一点?

4

0 回答 0