Как программно изменить цвет фона на MaterialButton с android.support.design - PullRequest
0 голосов
/ 28 сентября 2018

Я пытаюсь изменить цвет на MaterialButton с этим кодом:

var materialButton = findViewByid(R.id....) as MaterialButton
materialButton.setBackgroundColor( ContextCompat.getColor(this@MyActivity, R.color.myCustomColor));

С обычной кнопкой, это работает.У кого-нибудь есть идеи?

Ответы [ 3 ]

0 голосов
/ 28 сентября 2018

Я нашел ответ, который приведен ниже:

Я изменил следующую строку

materialButton.setBackgroundColor( ContextCompat.getColor(this@MyActivity, R.color.myCustomColor));

на

materialButton.setBackgroundTintList = ContextCompat.getColorStateList(this@MyActivity, R.color.myCustomColor)

Я протестировал его таким образом, и он работалидеально.

0 голосов
/ 15 июля 2019

Давайте попробуем это:

mButton.getBackground().setColorFilter(getResources().getColor(R.color.indian_red), PorterDuff.Mode.SRC_ATOP);
0 голосов
/ 28 сентября 2018

Вы должны изменить свой colorAccent, чтобы изменить фон для вашего materialButton.

Не используйте атрибут android: background.MaterialButton управляет своим собственным фоном для рисования, а установка нового фона означает, что MaterialButton больше не может гарантировать, что новые атрибуты, которые он вводит, будут работать правильно.Если фон по умолчанию изменяется, MaterialButton не может гарантировать четко определенное поведение.

Для заполненных кнопок этот класс использует? Attr / colorAccent вашей темы для оттенка фона и белый для цвета текста.Для незаполненных кнопок этот класс использует? Attr / colorAccent для цвета текста и прозрачный для оттенка фона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...