如何使用PasswordToggleEnabled将DrawableLeft设置为EditText

时间:2017-12-13 22:08:57

标签: java android android-studio android-edittext android-design-library

我为TextInputEditText制作PasswordField DrawableLeft作为图标,然后我添加了PasswordToggleEnabled(true) ..此操作已删除或隐藏我的DrawableLeft,这是我的代码:

<android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:passwordToggleContentDescription="Show Password"
        app:passwordToggleEnabled="true"
        app:hintEnabled="false"
        android:id="@+id/signupPasswordlayout"
        app:passwordToggleTint="@color/edittexttint">
        <android.support.design.widget.TextInputEditText
            android:hint="Password"
            android:id="@+id/signupPassword"
            android:drawableLeft="@drawable/ic_password"
            android:drawablePadding="10dp"
            android:inputType="textPassword"
            android:drawableTint="@color/edittexttint"
            android:textSize="15sp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
        </android.support.design.widget.TextInputLayout>

那么,是否可以同时显示(PasswordToggleDrawableLeft?)谢谢!

1 个答案:

答案 0 :(得分:5)

之前我没有看到过这种确切的行为,但是查看TextInputLayout的来源,它确实会在应用占位符drawable进行密码切换时尝试保留用户设置的drawable。但是,与其适用的支持库中的大多数其他内容一样,它使用相对位置处理它们 - 即startend - 而不是绝对 - left和{{1} }。

支持库一直以破坏指定绝对方向或位置的任何东西而臭名昭着,因此这也是问题所在并不奇怪。

只需将您设置的属性更改为right,而不是drawableStart。对于涉及支持库中绝对或相对位置和方向选择的任何其他事项,请记住这一点。