Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to remove drawableleft

The drawableLeft (or any of the similar attributes) XML attribute can be modified (removing a drawable in your case) via code using something like this:

yourTextView.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
yourTextView.setText("The Text You Need In There");

The constructor for the method is in this order:

setCompoundDrawablesWithIntrinsicBounds (int left, int top, int right, int bottom)

Read more about the method setCompoundDrawablesWithIntrinsicBounds here


We can sets the Drawables (if any) to appear to the left of, above, to the right of, and below the text.

Use 0 or null if you do not want a Drawable there.

 textView.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);

The Drawables' bounds will be set to their intrinsic bounds.

Calling this method will overwrite any Drawables previously set using {@link #setCompoundDrawablesRelative} or related methods.

And if we wants to set Drawables then we can use :

textView.setCompoundDrawablesWithIntrinsicBounds( R.drawable.smiley, 0, 0, 0);

The drawables of a TextView can be set programatically via the setCompoundDrawables method.

So you could try this:

textView.setCompoundDrawables(null, null, null, null);

Or

textView.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);

Add a Kotlin Extension

If you are going to be doing this frequently, adding an extension makes your code more readable

fun TextView.clearDrawables() {
    this.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0)
}

To use the extension, simply call

view.clearDrawables()

How to do this and apply to any of the four drawables with DataBinding

@BindingAdapter(value = [
"leftDrawable",
"topDrawable",
"rightDrawable",
"bottomDrawable"], requireAll = false)
fun setCompoundDrawables(textView: TextView,
                     @DrawableRes left: Int?,
                     @DrawableRes top: Int?,
                     @DrawableRes right: Int?,
                     @DrawableRes bottom: Int?) {

textView.setCompoundDrawablesWithIntrinsicBounds(
    left ?: 0,
    top ?: 0,
    right ?: 0,
    bottom ?: 0
)}