如何自定义 android passwordToggleDrawable
How to customize android passwordToggleDrawable
Android 添加了支持库 TextInputLayout 添加了一些功能,例如浮动标签和密码切换可见性
我的问题是如何自定义 passwordVisisbilityDrawable 以便显示我自己的可见和隐藏状态图标。
另外,当我启用 passwordToggleVisibility 时,高度会增加。
要更改可绘制对象,请创建如下所示的选择器
password_toggle_drawable.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_password_visible" android:state_checked="true"/>
<item android:drawable="@drawable/ic_password_hidden"/>
</selector>
然后像下面这样分配给 TextInputLayout:
<android.support.design.widget.TextInputLayout
android:id="@+id/PasswordLayout"
xmlns:android="http://schemas.android.com/apk/res/android"
app:passwordToggleEnabled="true"
**app:passwordToggleDrawable="@drawable/password_toggle_drawable"**
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.design.widget.CommonTextInputEditText
android:id="@+id/PasswordEditText"
android:padding="0dp"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"/>
</android.support.design.widget.TextInputLayout>
对于高度,我在充气后使用了以下代码:
CheckableImageButton text_input_password_toggle = (CheckableImageButton) PasswordLayout().findViewById(android.support.design.R.id.text_input_password_toggle);
text_input_password_toggle.setMinimumHeight(0);
PasswordEditText().setMinHeight(0);
PasswordEditText().setMinimumHeight(0);
Android 添加了支持库 TextInputLayout 添加了一些功能,例如浮动标签和密码切换可见性
我的问题是如何自定义 passwordVisisbilityDrawable 以便显示我自己的可见和隐藏状态图标。
另外,当我启用 passwordToggleVisibility 时,高度会增加。
要更改可绘制对象,请创建如下所示的选择器
password_toggle_drawable.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_password_visible" android:state_checked="true"/>
<item android:drawable="@drawable/ic_password_hidden"/>
</selector>
然后像下面这样分配给 TextInputLayout:
<android.support.design.widget.TextInputLayout
android:id="@+id/PasswordLayout"
xmlns:android="http://schemas.android.com/apk/res/android"
app:passwordToggleEnabled="true"
**app:passwordToggleDrawable="@drawable/password_toggle_drawable"**
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.design.widget.CommonTextInputEditText
android:id="@+id/PasswordEditText"
android:padding="0dp"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"/>
</android.support.design.widget.TextInputLayout>
对于高度,我在充气后使用了以下代码:
CheckableImageButton text_input_password_toggle = (CheckableImageButton) PasswordLayout().findViewById(android.support.design.R.id.text_input_password_toggle);
text_input_password_toggle.setMinimumHeight(0);
PasswordEditText().setMinHeight(0);
PasswordEditText().setMinimumHeight(0);