如果我使用passwordToggleEnabled(EditText),则我的drawableLeft消失了

Rik*_*kco 3 xml mobile android android-drawable

我试图在我的应用程序中使用漂亮的EditText,并且我将使用DrawableLeft在每个输入上添加简单的图标。一切正常,但是在EditText“ Password”上,我添加了passwordToggleEnabled(用户单击眼睛即可看到输入)。添加此内容会使我的drawableLeft消失。

你有主意吗?(对不起,我英语不好:-/)

用可绘制的左侧捕获

用密码眼捕捉

这是我的TextInputLayout:

<android.support.design.widget.TextInputLayout
    android:id="@+id/textInputPassword"
    android:layout_width="300dp"
    android:layout_height="60dp"
    android:layout_marginTop="16dp"
    android:theme="@style/EditTextHint"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/textInputEmail">

    <EditText
        android:id="@+id/editTextPassword"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginTop="8dp"
        android:backgroundTint="@color/shapy_blue"
        android:drawablePadding="10dp"
        android:drawableStart="@mipmap/picto_password_blue"
        android:ems="10"
        android:hint="@string/enter_password"
        android:inputType="textPassword"
        android:textColor="@color/shapy_blue"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.478"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.459" />

</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

编辑>>当我在Java中更改可绘制颜色时(在Focus侦听器上)

@Override
public void onFocusChange(View view, boolean b) {
    if(view == editTextEmail){
        editTextEmail.setCompoundDrawablesWithIntrinsicBounds(R.mipmap.picto_mail_white,0,0,0);
        editTextEmail.setTextColor(getResources().getColor(R.color.white));
    } else {
        editTextEmail.setCompoundDrawablesWithIntrinsicBounds(R.mipmap.picto_mail_blue,0,0,0);
        editTextEmail.setTextColor(getResources().getColor(R.color.shapy_blue));
    }
    if(view == editTextPasswordLogin){
        editTextPasswordLogin.setCompoundDrawablesWithIntrinsicBounds(R.mipmap.picto_password_white,0,0,0);
        editTextPasswordLogin.setTextColor(getResources().getColor(R.color.white));
    } else {
        editTextPasswordLogin.setCompoundDrawablesWithIntrinsicBounds(R.mipmap.picto_password_blue,0,0,0);
        editTextPasswordLogin.setTextColor(getResources().getColor(R.color.shapy_blue));
    }

}
Run Code Online (Sandbox Code Playgroud)

小智 5

使用

android:drawableStart="@drawable/ic_password" 
Run Code Online (Sandbox Code Playgroud)

在带有drawableLeft的EditText中

这是我的示例代码

                    <android.support.design.widget.TextInputLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    app:passwordToggleDrawable="@drawable/show_password_selector"
                    app:passwordToggleEnabled="true"
                    android:orientation="vertical">
                    <android.support.v7.widget.AppCompatEditText
                        android:layout_width="180dp"
                        android:layout_height="wrap_content"
                        android:inputType="textPassword"
                        android:drawableLeft="@drawable/ic_password"
                        android:drawableStart="@drawable/ic_password"
                        android:hint="Password"/>
                </android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)