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);
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
)}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With