我用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>
因此,可以同时显示(
PasswordToggle
和DrawableLeft
吗?)谢谢! 最佳答案
我以前没有看到过这种确切的行为,但是查看TextInputLayout
的源代码,当它为密码切换应用占位符drawable时,它确实尝试保留用户设置的drawable。但是,就像支持库中适用的所有其他内容一样,它以相对位置(即start
和end
-而不是绝对值-left
和right
)处理它们。
支持库一向以破坏任何指定绝对方向或位置的东西而臭名昭著,因此这也就不足为奇了。
只需将您要设置的属性更改为drawableStart
,而不是drawableLeft
即可。对于支持库中涉及绝对或相对位置和方向的其他选择,也请记住这一点。