美文网首页
EditText设置 drawableRight 、left、t

EditText设置 drawableRight 、left、t

作者: 雨来 | 来源:发表于2022-05-17 11:13 被阅读0次

    记录

    代码动态设置

    有文本的时候显示删除按钮 没有文本的时候 隐藏删除按钮

     et_searching.addTextChangedListener(object : TextWatcher{
                override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
    
                }
    
                override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
                    if(p0.toString().length>1){
                        et_searching.setCompoundDrawablesWithIntrinsicBounds(resources.getDrawable(R.mipmap.common_search),null,resources.getDrawable(R.mipmap.icon_clear_et),null)
                    }else {
                        et_searching.setCompoundDrawablesWithIntrinsicBounds(resources.getDrawable(R.mipmap.common_search),null,null,null)
                    }
                }
    
                override fun afterTextChanged(p0: Editable?) {
    
                }
    
    
            })
    

    删除按钮的监听

      et_searching.setOnTouchListener(object : View.OnTouchListener {
                    override fun onTouch(v: View?, event: MotionEvent?): Boolean {
                        var drawable: Drawable? = et_searching.compoundDrawables[2]
                            ?: return false // et.getCompoundDrawables()得到一个长度为4的数组,分别表示左右上下四张图片
                        //如果右边没有图片,不再处理
                        //如果不是按下事件,不再处理
                        if (event!!.action != MotionEvent.ACTION_UP) return false
                        if (event.x > (et_searching.width
                                    - et_searching.paddingRight
                                    - drawable?.intrinsicWidth!!)
                        ) {
                            et_searching.setText("")
                        }
                        return false
                    }
    
                })
    

    相关文章

      网友评论

          本文标题:EditText设置 drawableRight 、left、t

          本文链接:https://www.haomeiwen.com/subject/attnurtx.html