So entfernen Sie drawableleft

Lesezeit: 2 Minuten

Ich habe eine Schaltfläche und eine Textansicht, die Textansicht hat eine ziehbare linke Seite. Nach dem Klicken auf die Schaltfläche sollte das Drawable-Links entfernt und ein einfacher Text auf die Textansicht gesetzt werden, aber ich weiß nicht, wie ich das Drawable-Links aus dem Code entfernen kann.

Danke im Voraus.

Das drawableLeft (oder eines der ähnlichen Attribute) XML-Attribut kann geändert werden (Entfernen a drawable in Ihrem Fall) über Code mit etwa dem folgenden:

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

Der Konstruktor für die Methode ist in dieser Reihenfolge:

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

Lesen Sie mehr über die Methode SetCompoundDrawablesWithIntrinsicBounds hier

Benutzer-Avatar
A-Droid Tech

Wir können das einstellen Drawables (falls vorhanden) zu erscheinen links, oben, rechts und unten der Text.

Verwenden Sie 0 oder null, wenn Sie dort kein Drawable haben möchten.

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

Die Grenzen der Drawables werden auf ihre intrinsischen Grenzen gesetzt.

Das Aufrufen dieser Methode überschreibt alle Drawables, die zuvor mit festgelegt wurden
{@link #setCompoundDrawablesRelative} oder verwandte Methoden.

Und wenn wir wollen Drawables festlegen dann können wir verwenden:

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

Benutzer-Avatar
sdabet

Die Drawables von a TextView kann programmgesteuert über die eingestellt werden setCompoundDrawables Methode.

Du könntest also Folgendes versuchen:

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

Oder

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

Fügen Sie eine Kotlin-Erweiterung hinzu

Wenn Sie dies häufig tun, macht das Hinzufügen einer Erweiterung Ihren Code lesbarer

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

Um die Nebenstelle zu nutzen, rufen Sie einfach an

view.clearDrawables()

Wie das geht und sich auf eines der vier Drawables mit bewerben 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
)}

Benutzer-Avatar
Keshav Gera

Set All Position is Zero Ihr Drawable-Element wurde entfernt

Es funktioniert mit dieser setOnFocusChangeListener-Methode

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);

            }
        });

1216320cookie-checkSo entfernen Sie drawableleft

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy