Modificación del color del tema de TextInputLayout

Con respecto al tema de la clase TextInputLayout, este tipo no está disponible en Androidx y es necesario importar las dependencias.

implementation 'com.google.android.material:material:1.0.0'

usar:

<com.google.android.material.textfield.TextInputLayout
    android:id="@+id/text_account"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/TextInputLayoutTheme"
    app:hintTextAppearance="@style/TextInputLayoutTheme"  //提示语的样式
    app:errorTextAppearance="@style/TextInputLayouteErrMsg" //错误提示的样式
    >
    <com.google.android.material.textfield.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="numberPassword"
        android:imeOptions="actionDone"
        android:lines="1"
        android:singleLine="true"
        android:hint="@string/please_enter_password"
        />
</com.google.android.material.textfield.TextInputLayout>

Úselo en combinación con TextInputEditText para lograr una experiencia de usuario fluida. Cuando Edittext se enfoca, aparecerán sugerencias automáticamente, mejorando la experiencia del usuario.

Pero con un efecto tan genial, lo más problemático es ¿cómo modificar el texto de sugerencia y el color de la línea inferior de TextInputLayout?

Preste atención a la parte roja del código anterior, ¡es muy crítica! Cuando modificamos TextInputLayout, debemos recordar modificar el tema en lugar del estilo. 

Cuando el EditText del primer TextInputLayout recibe el foco, el texto y el color usan Theme

android:theme="@estilo/TextInputLayoutTheme"

    <style name="TextInputLayoutTheme" >
        <item name="android:textColor">@color/colorPrimaryDark</item>
<!--        <item name="android:textSize">16sp</item>-->
        <!-- 底部线 默认颜色 -->
        <item name="colorControlNormal">@color/colorPrimaryDark</item>
        <!-- 底部线 EditText激活时颜色 -->
        <item name="colorControlActivated">@color/colorAccent</item>
    </style>

Al hacer clic para iniciar sesión, se considera que el primer cuadro de entrada no está vacío y el rendimiento es el siguiente

aplicación:errorTextAppearance="@style/TextInputLayouteErrMsg"

Debido a que nuestro formulario de visualización en el código es un error, consulte a continuación

text_account.setError("账号不能为空");

En este punto, todos pueden adaptarse a varios colores a voluntad y ya no tener que preocuparse por los errores planteados por el producto hermano. . . . .

 

Supongo que te gusta

Origin blog.csdn.net/chenluming210/article/details/117707649
Recomendado
Clasificación