在 TextInputLayout 中同时启用 errorEnabled 和 passwordToggleEnabled

den*_*lig 5 android android-layout xml-layout android-textinputlayout

我想在 a中将errorEnabled和 都设置为 true ,但似乎这两者不能共存,因为一个像这样覆盖另一个。passwordToggleEnabledTextInputLayout

我想这样做是因为我正在验证密码字段以匹配特定条件,并且我希望用户能够看到错误消息和已输入的密码。

这是我的代码:

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:counterEnabled="true"
    app:errorEnabled="true"
    app:passwordToggleEnabled="true">

    <android.support.design.widget.TextInputEditText
        android:id="@+id/password_input"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/password"
        android:inputType="textPassword" />

</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

是否可以将密码切换图标移到感叹号左侧一点?或者我是否必须创建一个自定义可绘制对象并使用它而不是密码切换图标?

Nav*_*Dew 4

尝试设置setError()TextInputLayoutTextInputEditText

XML

<android.support.design.widget.TextInputLayout
    android:id="@+id/ti_input"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:counterEnabled="true"
    app:errorEnabled="true"
    app:passwordToggleEnabled="true">

    <android.support.design.widget.TextInputEditText
        android:id="@+id/password_input"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Password"
        android:inputType="textPassword" />
Run Code Online (Sandbox Code Playgroud)

代码

    if(password_input.getText().toString().equals(""))
        ti_input.setError("Enter Password");
    else
        ti_input.setError(null);
Run Code Online (Sandbox Code Playgroud)