backgroundTint 属性 为整个 TextInputEditText 着色

backgroundTint property colores the whole TextInputEditText

我只想为 editText 下划线设置颜色。我怎样才能实现它?正如我在标题中提到的,我尝试设置 backgroundTint 属性,但不是着色下划线,而是整个 TextInputEditText 被着色

xml

<com.google.android.material.textfield.TextInputLayout
                android:id="@+id/passwordInputLayout"
                android:layout_width="384dp"
                android:layout_height="75dp"
                android:layout_marginStart="16dp"
                android:layout_marginEnd="16dp"
                android:hint="@string/password_hint"
                android:textColorHint="@color/white"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/usernameInputLayout"
                app:passwordToggleEnabled="true"
                app:passwordToggleTint="#8E8E93">
    
                <com.google.android.material.textfield.TextInputEditText
                    android:id="@+id/passwordInputEditText"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:inputType="textPassword"
                    android:text="@={authViewModel._password}"
                    android:background="#00000000"
                    android:textColor="@color/white"/>
    </com.google.android.material.textfield.TextInputLayout>

而不是设置 backgroundTint 属性,尝试下面的代码(这将使您能够设置 TextInputEditText 的下划线颜色,从那时起您可以将其自定义为你的喜好:

activity_main.xml:

 <com.google.android.material.textfield.TextInputLayout
        style="@style/textInputLayout.BlueLabel"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginTop="16dp"
        android:layout_marginEnd="16dp"
        android:hint="Username"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <com.google.android.material.textfield.TextInputEditText
            style="@style/textInputLayout.BlueLabel"
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:layout_marginTop="16dp" />
    </com.google.android.material.textfield.TextInputLayout>

styles.xml:

<resources>
    <style name="textInputLayout.BlueLabel"
        parent="Widget.Design.TextInputLayout">
        <item name="hintTextAppearance">@style/AppTheme.TextFloatLabelAppearance</item>
    </style>

    <style name="AppTheme.TextFloatLabelAppearance"
        parent="TextAppearance.Design.Hint">
        <item name="hintTextColor">@color/teal_200</item> <!--Change underline color here-->
    </style>
</resources>

如您现在所见,我们已将下划线颜色更改为蓝绿色:

唯一的警告TextInputLayout 的外观并不是真正的 'material-like'。如果您 运行 遇到任何错误或问题,请在评论中告诉我。