Android 密码可见性切换不适用于支持库 25?
Posted
技术标签:
【中文标题】Android 密码可见性切换不适用于支持库 25?【英文标题】:Android password visibility toggle not working with support library 25? 【发布时间】:2017-05-13 23:57:50 【问题描述】:我已经以通常的方式实现了一个带有密码字段的 TextInputLayout:
<android.support.design.widget.TextInputLayout
android:layout_
android:layout_>
<EditText
android:id="@+id/returning_password"
android:layout_
android:layout_
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'
我不再在小部件中看到密码可见性切换(又名“眼睛图标”)。更改为最新版本 25.1.0 并不能解决此问题。
我有什么遗漏并且需要结合支持库 25 进行更改,或者这可能是 Android 问题吗?
【问题讨论】:
【参考方案1】:试试这个方法。
<android.support.design.widget.TextInputLayout
android:layout_
android:layout_
app:passwordToggleEnabled="true">
<EditText
android:id="@+id/returning_password"
android:layout_
android:layout_
android:hint="@string/prompt_password"
android:inputType="textPassword"
android:maxLines="1"
android:textSize="14sp" />
</android.support.design.widget.TextInputLayout>
这可能对你有帮助!!
现在默认禁用 TextInputLayout 密码切换,以避免不必要地覆盖开发人员指定的最终可绘制对象。它可以通过 passwordToggleEnabled XML 属性手动启用。
Recent Support Library Revisions
【讨论】:
完美答案,谢谢!这立即修复了它,下次库版本更新时我会密切关注该链接。 删除密码roboto默认字体使用android:typeface="normal"
如何使用支持库 23.4.0 实现相同的功能
有时图标可能是白色的,所以添加 app:passwordToggleTint="some color" 以提高可见性。【参考方案2】:
如果你使用 Jetpack 那么
添加这些依赖项
implementation 'com.google.android.material:material:1.0.0'
并在xml中添加app:passwordToggleEnabled="true"
还有一件事,使用 inputType= textPassword
如果你使用而不是这个,那么切换按钮将不会显示。
而不是使用
<android.support.design.widget.TextInputLayout
android:layout_
android:layout_
app:passwordToggleEnabled="true">
<EditText
android:id="@+id/returning_password"
android:layout_
android:layout_
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_
android:layout_
app:passwordToggleEnabled="true">
<EditText
android:id="@+id/returning_password"
android:layout_
android:layout_
android:hint="@string/prompt_password"
android:inputType="textPassword"
android:maxLines="1"
android:textSize="14sp" />
</com.google.android.material.textfield.TextInputLayout>
【讨论】:
对于那些将应用程序迁移到 androidx 的人来说真的很有帮助。谢谢【参考方案3】:您不需要添加以下内容:
app:passwordToggleEnabled="true"
只需将您的依赖项更改为:
compile 'com.android.support:design:25.0.0'
这也是我在更新依赖项时遇到的相同错误。
编辑:
现在
app:passwordToggleEnabled="true"
正在合作,
compile 'com.android.support:design:25.3.0'
【讨论】:
【参考方案4】:<android.support.design.widget.TextInputLayout
android:layout_
android:layout_
app:passwordToggleEnabled="true">
app:passwordToggleEnabled="true">
<EditText
android:id="@+id/edt_password"
android:layout_
android:layout_
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'
【讨论】:
以上是关于Android 密码可见性切换不适用于支持库 25?的主要内容,如果未能解决你的问题,请参考以下文章
Android Studio - XML 编辑器自动完成功能不适用于支持库
CSS 过渡:不透明度和可见性过渡不适用于 Firefox(适用于 Chrome / Safari)