Android 在TextInputLayout中同时启用errorEnabled和passwordToggleEnabled

Android 在TextInputLayout中同时启用errorEnabled和passwordToggleEnabled,android,android-layout,android-textinputlayout,xml-layout,Android,Android Layout,Android Textinputlayout,Xml Layout,我想在TextInputLayout中将errorEnabled和passwordToggleEnabled都设置为true,但这两个似乎不能共存,因为一个覆盖了另一个 之所以要这样做,是因为我正在验证密码字段是否符合特定条件,并且我希望用户能够看到错误消息和键入的密码 这是我的代码: <android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layo

我想在
TextInputLayout
中将
errorEnabled
passwordToggleEnabled
都设置为true,但这两个似乎不能共存,因为一个覆盖了另一个

之所以要这样做,是因为我正在验证密码字段是否符合特定条件,并且我希望用户能够看到错误消息和键入的密码

这是我的代码:

<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>

是否可以将passwordToggle图标移到感叹号的左侧一点?或者我必须创建一个自定义绘图并使用它而不是passwordToggle图标吗?

尝试在
TextInputLayout
插入
textinputtext

xml


这对我有用。不要在EditText上使用
setError()
,使用TextInputLayout的
setError()

您可以将一个放在左侧,一个放在右侧?我看不出可以在TextInputLayout中配置它。你建议怎么做?使用android:layoutDirection=“rtl”只会将问题转移到左侧。@deling是的,我指的是这个。因此,这似乎是一个真正的问题必须尝试将android:layoutDirection=“rtl”设置为textInputLayout,将android:layoutDirection=“ltr”设置为edittext,并将error设置为edittext@Umair是的,现在就试。几乎可以工作了,但是当您键入时,passwordToggle图标现在隐藏在文本下。也尝试了相反的方法,但不幸的是也没有成功。然后您有三个选择:)1)从一开始就添加填充,这样文本就不会混合。2) 制作您自己的自定义编辑文本3)添加图标而不是密码切换图标并不完全符合我最初的想法,但它实际上似乎是一个很好的解决方案。这是一个缺点,因为您丢失了感叹号,因此从交互设计的角度来看,您可能会认为错误消息不像以前那么容易看到。
<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" />
    if(password_input.getText().toString().equals(""))
        ti_input.setError("Enter Password");
    else
        ti_input.setError(null);