How to remove drawableleft

后端 未结 6 684
攒了一身酷
攒了一身酷 2020-12-29 01:06

I have a button and a text-view, text-view has a drawable-left. After click on button the drawable-left should be removed and a plain text should be set to Text-view, but I

相关标签:
6条回答
  • 2020-12-29 01:30

    Set All Position is Zero Your Drawable item is remove

    Its Working Using This setOnFocusChangeListener method

    et_feedback.setCompoundDrawablesWithIntrinsicBounds(0,0, 0, 0);

    et_feedback.setOnFocusChangeListener(new View.OnFocusChangeListener() {
                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                    //TODO using this Drawable icon remomve  onclick
                    et_feedback.setCompoundDrawablesWithIntrinsicBounds(0,0, 0, 0);
                    et_feedback.setTextColor(Color.BLACK);
    
                }
            });
    
    0 讨论(0)
  • 2020-12-29 01:32

    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()
    
    0 讨论(0)
  • 2020-12-29 01:36

    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);
    
    0 讨论(0)
  • 2020-12-29 01:37

    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
    )}
    
    0 讨论(0)
  • 2020-12-29 01:40

    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);
    
    0 讨论(0)
  • 2020-12-29 01:48

    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

    0 讨论(0)
提交回复
热议问题