Android 密码可见性切换不适用于支持库 25?

Android password visibility toggle not working with support library 25?

我已经以通常的方式实现了带有密码字段的 TextInputLayout:

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <EditText
        android:id="@+id/returning_password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/prompt_password"
        android:inputType="textPassword"
        android:maxLines="1"
        android:textSize="14sp" />

</android.support.design.widget.TextInputLayout>

这在使用 Android 支持库到 24.0.2 版本时工作正常,但在切换到 25.0.1 之后:

compile 'com.android.support:design:25.0.1'
compile 'com.android.support:support-v4:25.0.1'
compile 'com.android.support:appcompat-v7:25.0.1'
compile 'com.android.support:support-vector-drawable:25.0.1'

我在小部件中不再看到密码可见性切换(a.k.a。"eye icon")。更改为最新版本 25.1.0 并未解决此问题。

是否有任何我遗漏并需要结合支持库 25 进行更改的内容,或者这可能是一个 Android 问题?

这样试试。

<android.support.design.widget.TextInputLayout
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   app:passwordToggleEnabled="true">

<EditText
    android:id="@+id/returning_password"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/prompt_password"
    android:inputType="textPassword"
    android:maxLines="1"
    android:textSize="14sp" />

</android.support.design.widget.TextInputLayout>

这可能对您有所帮助!!

The TextInputLayout password toggle is now disabled by default to avoid unnecessarily overwriting developer-specified end drawables. It may be manually enabled via the passwordToggleEnabled XML attribute.

Recent Support Library Revisions

您不需要添加以下内容:

app:passwordToggleEnabled="true"

只需将您的依赖项更改为:

compile 'com.android.support:design:25.0.0'

这也是我在更新依赖项时遇到的相同错误。

编辑:

现在

app:passwordToggleEnabled="true"

正在与

合作
compile 'com.android.support:design:25.3.0'
<android.support.design.widget.TextInputLayout
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   app:passwordToggleEnabled="true">

app:passwordToggleEnabled="true">

<EditText
    android:id="@+id/edt_password"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="Password"
    android:inputType="textPassword"
    android:maxLines="1"
    android:textSize="16sp" />

</android.support.design.widget.TextInputLayout>

编译'com.android.support:design:25.0.1'

编译'com.android.support:support-v4:25.0.1'

编译'com.android.support:appcompat-v7:25.0.1'

编译'com.android.support:support-vector-drawable:25.0.1'

如果你使用 Jetpack 那么

添加这些依赖项

implementation 'com.google.android.material:material:1.0.0'

并在xml中添加app:passwordToggleEnabled="true" 还有一件事,使用 inputType= textPassword 如果你使用而不是这个那么切换按钮将不会显示。

而不是使用

<android.support.design.widget.TextInputLayout
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   app:passwordToggleEnabled="true">

<EditText
    android:id="@+id/returning_password"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/prompt_password"
    android:inputType="textPassword"
    android:maxLines="1"
    android:textSize="14sp" />

</android.support.design.widget.TextInputLayout>

,你需要使用

<com.google.android.material.textfield.TextInputLayout
 android:layout_width="match_parent"
   android:layout_height="wrap_content"
   app:passwordToggleEnabled="true">

<EditText
    android:id="@+id/returning_password"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/prompt_password"
    android:inputType="textPassword"
    android:maxLines="1"
    android:textSize="14sp" />

</com.google.android.material.textfield.TextInputLayout>