私はこれが古いものかもしれないことを知っていますが、私が一緒に使用InputTypeしたときにこの問題に関連する何かにぶつかりましapp:passwordToggleEnabled="true"た。
それで、これを書いてください、それはここの誰かを助けるかもしれません。 
app:passwordToggleEnabledパスワード入力フィールドのオプションと共に、パスワードフィールドにカスタムフォントを使用したい。しかし、27.1.1(これを書いている最中)のサポートライブラリでは、クラッシュしていました。
コードは以下のようになりました、 
<android.support.design.widget.TextInputLayout
        android:id="@+id/input_password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="@dimen/_10dp"
        android:layout_marginTop="@dimen/_32dp"
        android:hint="@string/current_password"
        android:textColorHint="@color/hint_text_color"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:passwordToggleEnabled="true"
        app:passwordToggleTint="@color/black">
        <EditText
            android:id="@+id/password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="start|left"
            android:maxLines="1"
            android:textAlignment="viewStart"
            android:textColor="@color/black"
            android:textColorHint="@color/camel"
            android:textSize="@dimen/txt_16sp"
            app:font_style="regular"
            app:drawableEnd="@drawable/ic_remove_eye" />
    </android.support.design.widget.TextInputLayout>
上記のコードはinputTypeXMLで定義されていません
EditText password = (EditText) findViewById(R.id.password);
password.setTransformationMethod(new PasswordTransformationMethod());
Javaでは、入力タイプsetTransformationMethodのプロパティを取得するのに役立ちますtextPassword。また、カスタムフォントスタイルに満足しています。
しかし、下記のクラッシュは、27.1.1サポートライブラリのすべてのAPIレベルで発生しました。
  java.lang.NullPointerException:nullオブジェクト参照で仮想メソッド「void android.support.design.widget.CheckableImageButton.setChecked(boolean)」を呼び出そうとしました
これはonRestoreInstanceState内部TextInputLayoutクラスが原因でクラッシュしていました   。
再現手順:パスワードの表示を切り替えてアプリを最小化し、最近のアプリから開きます。ええと、クラッシュした!
必要なのは、デフォルトのパスワード切り替えオプション(サポートライブラリを使用)とパスワード入力フィールドのカスタムフォントだけです。
しばらくして、以下のようにして考え出した、
<android.support.design.widget.TextInputLayout
        android:id="@+id/input_password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="@dimen/_10dp"
        android:layout_marginTop="@dimen/_32dp"
        android:hint="@string/current_password"
        android:textColorHint="@color/hint_text_color"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:passwordToggleEnabled="true"
        app:passwordToggleTint="@color/black">
        <EditText
            android:id="@+id/password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="start|left"
            android:maxLines="1"
            android:textAlignment="viewStart"
            android:textColor="@color/black"
            android:textColorHint="@color/camel"
            android:textSize="@dimen/txt_16sp"
            app:font_style="regular"
            app:drawableEnd="@drawable/ic_remove_eye"
            android:inputType="textPassword" />
    </android.support.design.widget.TextInputLayout>
XMLで追加 android:inputType="textPassword"
TextInputLayout inputPassword = findViewById(R.id.input_password);
EditText password = findViewById(R.id.password);
EditText userName = findViewById(R.id.user_name);
// Get the typeface of user name or other edit text
Typeface typeface = userName.getTypeface();
if (typeface != null)
   inputLayout.setTypeface(typeface); // set to password text input layout
上記のJavaコードでは、 
ユーザー名からカスタム書体を取得し、パスワードフィールドにEditText適用しましたTextInputLayout。プロパティEditTextを取得するため、タイプフェイスを明示的にパスワードに設定する必要はありませんTextInputLayout。
また、私は削除しました password.setTransformationMethod(new PasswordTransformationMethod());
このようにすると、passwordToggleEnabledが機能し、カスタムフォントも適用され、クラッシュに別れを告げます。この問題が今後のサポートリリースで修正されることを願っています。