如何在启用密码切换的EditText中设置DrawableLeft

3

我已经为一个带有DrawableLeft图标的PasswordField创建了一个TextInputEditText,然后我添加了一个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)?谢谢!

将属性更改为drawableStart,而不是drawableLeft - Mike M.
1
完美运行!您能否将您的“评论”放在“答案”中,这样我就可以给您一个+1 :D。 - Tamim Attafi
1个回答

7
我以前没有见过这种精确的行为,但是查看TextInputLayout的源代码后,它确实在应用密码切换的占位符时尝试保留用户设置的可绘制对象。然而,像其适用的支持库中的大多数其他内容一样,它使用相对位置(即startend)而不是绝对位置(leftright)来处理它们。
支持库一直以来都以破坏任何指定绝对方向或位置的东西而闻名,所以这里出现问题也就不足为奇了。
只需将您要设置的属性更改为drawableStart,而不是drawableLeft。对于涉及支持库的任何其他选择绝对或相对位置和方向的事情,也请记住这一点。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接