как изменить цвет метки TextinputLayout и edittext underline android
Я использую TextinputLayout
библиотеки дизайна TextinputLayout
. Но не удалось настроить цвет подсказки, цвет ярлыка и цвет подчеркивания EditText
внутри TextinputLayout
. Пожалуйста помоги.
Чтобы изменить цвет нижней строки, вы можете использовать это в своей теме приложения:
- #c5c5c5
- @color/accent
- @color/accent
Для получения дополнительной информации, проверьте ЭТУ НИТЬ .
Изменение цвета плавающей метки
и используйте его так:
Обновить:
И используйте его, как показано ниже, если вы хотите изменить цвет подсказки, если это не плавающая метка:
Благодаря @AlbAtNf
Основываясь на ответах Федора Казакова и других, я создал конфигурацию по умолчанию.
styles.xml
activity_layout.xml
Основное внимание:
Без внимания:
Сообщение об ошибке:
Эта статья в блоге описывает различные аспекты стиля EditText
и AutoCompleteTextView
обернутые TextInputLayout
.
Для EditText
и AppCompat lib 22.1.0+ вы можете установить атрибут темы с некоторыми связанными с темой настройками:
и применить их в EditText
:
Для AutoCompleteTextView
все сложнее, потому что обертывание его в TextInputLayout
и применение этой темы нарушает поведение плавающей метки. Вам нужно исправить это в коде:
private void setStyleForTextForAutoComplete(int color) { Drawable wrappedDrawable = DrawableCompat.wrap(autoCompleteTextView.getBackground()); DrawableCompat.setTint(wrappedDrawable, color); autoCompleteTextView.setBackgroundDrawable(wrappedDrawable); }
и в Activity.onCreate
:
setStyleForTextForAutoComplete(getResources().getColor(R.color.greyLight)); autoCompleteTextView.setOnFocusChangeListener((v, hasFocus) -> { if(hasFocus) { setStyleForTextForAutoComplete(getResources().getColor(R.color.blue)); } else { if(autoCompleteTextView.getText().length() == 0) { setStyleForTextForAutoComplete(getResources().getColor(R.color.greyLight)); } } });
Добавьте этот атрибут в тег Edittext и наслаждайтесь:
android:backgroundTint="@color/colorWhite"
Вы можете переопределить этот стиль для макета
А также вы можете изменить внутренний стиль EditText-item.
Если вы хотите изменить цвет строки / строки и цвет текста подсказки TextInputLayout
(что обычно имеет цвет акцента), просто создайте этот стиль:
Затем примените его к TextInputLayout
в качестве темы :
Это в основном задает тему (не стиль) для одного представления (в отличие от всей активности).
примените этот стиль к TextInputLayout