使用 setCompoundDrawablesWithIntrinsicBounds(left, top, right, bottom) 在 textView 的 drawable 上获取 onclick 事件

gb1*_*b17 1 android textview onclicklistener android-drawable

我只是想知道我们能否setCompoundDrawablesWithIntrinsicBounds(left, top, right, bottom)在 textview上获得两个不同的 onclick 事件。首先在 textview 上单击,然后在 drawable 上进行其他单击,或者我可以在仅可绘制而不是 textview 上单击。?? 任何帮助将不胜感激。谢谢你。

小智 5

我是通过自己监听点击事件来实现的。像下面这样:

    lTextView.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if(event.getAction() == MotionEvent.ACTION_UP && event.getX() < dpTopx(MainActivity.this, 19) )
            {
                Log.v("Click", "Clicked on back button");
            }
            return true;
        }
    });
Run Code Online (Sandbox Code Playgroud)

其中 dpToPx 只是将 dp 转换为像素的函数。所以现在左边的 19-dp 区域(包含一个左边的 drawable)是可点击的。