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.
您不需要添加以下内容:
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>
我已经以通常的方式实现了带有密码字段的 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.
您不需要添加以下内容:
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>