Комплексное руководство по изменению цвета TextInputLayout [2024]

В этой статье блога мы рассмотрим различные способы изменения цвета компонента TextInputLayout. TextInputLayout — популярный компонент, используемый при разработке приложений для Android, предоставляющий плавающую метку и место для пользовательского ввода. Мы предоставим примеры кода для каждого метода, чтобы помочь вам легко реализовать изменения цвета в вашем приложении. Давайте погрузимся!

Методы изменения цвета TextInputLayout:

Метод 1: использование атрибутов XML
Вы можете изменить цвет TextInputLayout, изменив атрибуты XML. Добавьте следующие атрибуты в TextInputLayout в файле макета XML:

<com.google.android.material.textfield.TextInputLayout
    ...
    app:boxBackgroundColor="@color/colorPrimary"
    app:boxStrokeColor="@color/colorAccent"
    app:hintTextColor="@color/colorHint"
    ... >
    ...
</com.google.android.material.textfield.TextInputLayout>

Метод 2. Программное изменение цветов.
Вы также можете изменить цвета TextInputLayout программно, используя setBoxBackgroundColor(), setBoxStrokeColor()и setDefaultHintTextColor()методы:

TextInputLayout textInputLayout = findViewById(R.id.textInputLayout);
textInputLayout.setBoxBackgroundColor(getResources().getColor(R.color.colorPrimary));
textInputLayout.setBoxStrokeColor(getResources().getColor(R.color.colorAccent));
textInputLayout.setDefaultHintTextColor(ColorStateList.valueOf(getResources().getColor(R.color.colorHint)));

Метод 3. Использование стилей
Создайте собственный стиль в файле Styles.xml и примените его к TextInputLayout:

<style name="CustomTextInputLayout" parent="Widget.MaterialComponents.TextInputLayout.FilledBox">
    <item name="boxBackgroundColor">@color/colorPrimary</item>
    <item name="boxStrokeColor">@color/colorAccent</item>
    <item name="hintTextColor">@color/colorHint</item>
</style>

Примените стиль к TextInputLayout в файле макета XML:

<com.google.android.material.textfield.TextInputLayout
    ...
    >
    ...
</com.google.android.material.textfield.TextInputLayout>

Метод 4: использование тем
Вы можете изменить цвета TextInputLayout, переопределив атрибуты темы в теме вашего приложения. Добавьте следующие атрибуты в свою тему в файлеstyles.xml:

<item name="textInputStyle">@style/CustomTextInputLayout</item>

Определите собственный стиль, как указано в методе 3.

Изменить цвет TextInputLayout в Android можно разными способами. Вы можете изменять атрибуты XML, программно изменять цвета, использовать стили или переопределять атрибуты темы. Выберите метод, который соответствует вашим требованиям, и реализуйте его в своем приложении, чтобы настроить внешний вид TextInputLayout.