TextInputLayout 中的 endIconTint 不起作用

endIconTint in TextInputLayout is not working

我正在使用 TextInputLayoutTextInputEditText 创建一个登录表单,但是切换密码图标总是显示为白色,无论我将其指定为哪种颜色 endIconTint。我已经在

上测试过了

Android 6
Android 10

两者显示相同的结果。

这是我在 TextInputLayout 中使用 Widget.MaterialComponents.TextInputLayout.OutlinedBox 作为样式时的表单。它似乎没有显示可绘制对象,但事实并非如此,因为可绘制对象和输入字段背景颜色为白色。当我单击末尾时,它会切换密码。

这是我使用Widget.MaterialComponents.TextInputLayout.FilledBox

时的形式

这是我的代码,您可以看到我目前正在为 endIconTint

指定黑色
<com.google.android.material.textfield.TextInputLayout
        android:id="@+id/password_til"
        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:hint="Password"
        app:counterEnabled="true"
        app:counterMaxLength="20"
        app:endIconMode="password_toggle"
        app:endIconTint="@color/black"
        app:helperText="required*"
        app:helperTextTextColor="@android:color/holo_red_dark"
        app:layout_constraintTop_toBottomOf="@id/username_til"
        app:passwordToggleEnabled="true"
        app:startIconDrawable="@drawable/ic_key">

        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/password_tiet"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="textPassword"
            android:maxLength="20" />
    </com.google.android.material.textfield.TextInputLayout>

我交叉验证了 color.xml 文件中的颜色并尝试了其他颜色,但图标始终显示为白色。请让我知道这里有什么问题或者是错误?

感谢和问候

您已经指定了 app:endIconMode="password_toggle",因此您不需要再设置 passwordToggleEnabled

将此从 TextInputLayout 中删除即可解决您的问题。

app:passwordToggleEnabled="true"