Подтвердить что ты не робот

Как удалить drawableleft

У меня есть кнопка и текстовое представление, текстовый вид имеет drawable-left. После того, как вы нажмете на кнопку, нужно удалить drawable-left, а обычный текст должен быть установлен в Text-view, но я не знаю, как удалить drawable-left из кода.

Спасибо заранее.

4b9b3361

Ответ 1

Атрибут drawableLeft (или любой из аналогичных атрибутов) XML может быть изменен (удалив drawable в вашем случае) с помощью кода, используя что-то вроде этого:

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

Конструктор метода находится в следующем порядке:

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

Подробнее о методе setCompoundDrawablesWithIntrinsicBounds здесь

Ответ 2

Мы можем установить Drawables (если таковые имеются), чтобы они появлялись слева, над, справа и под текстом.

Используйте 0 или ноль, если вы не хотите рисовать там.

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

Границы Drawables будут установлены на их внутренние границы.

Вызов этого метода перезапишет любые Drawables, ранее установленные с помощью {@link #setCompoundDrawablesRelative} или связанных методов.

И если мы хотим установить Drawables, то мы можем использовать:

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

Ответ 3

Версии TextView могут быть установлены программно с помощью метода setCompoundDrawables.

Итак, вы можете попробовать следующее:

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

или

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

Ответ 4

Нижеследующая строка отлично работает,

yourTextView.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);

Этот ответ должен уведомить об одном вопросе, с которым я столкнулся с типичным сценарием,

Если вы указали видимость yourTextView в xml

тогда напишите эту строку: "yourTextView.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);" после делая видимость вашего текста видимым, иначе он не будет работать.

  yourTextView.setVisibility(View.VISIBLE):
yourTextView.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);

Надеюсь, это поможет кому-то, следующему этому типичному потоку.

Ответ 5

Установить все позиции в нуле. Ваш объект Drawable удален

Работа с использованием этого метода setOnFocusChangeListener

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

            }
        });

Ответ 6

Как это сделать и применить к любому из четырех элементов рисования с помощью 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
)}