Android密码可见性切换无法与支持库25一起使用?

时间:2016-12-29 16:18:48

标签: android passwords android-support-library 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的Android支持库,但切换到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。“眼睛图标”)。更改为最新版本25.1.0无法解决此问题。

我是否遗漏了任何需要与支持库25一起更改的内容,或者这可能是Android问题?

4 个答案:

答案 0 :(得分:25)

以这种方式试试。

<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>

这可能对你有所帮助!!

  

默认情况下,TextInputLayout密码切换现已禁用,以避免不必要地覆盖开发人员指定的最终可绘制内容。它可以通过passwordToggleEnabled XML属性手动启用。

Recent Support Library Revisions

答案 1 :(得分:2)

您不需要添加以下内容:

app:passwordToggleEnabled="true"

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

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

这也是我在更新依赖关系时遇到的同样的错误。

编辑:

现在

app:passwordToggleEnabled="true"

正在使用,

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

答案 2 :(得分:1)

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

应用:passwordToggleEnabled =&#34;真&#34;&GT;

<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>

compile&#39; com.android.support:design:25.0.1&#39;

compile&#39; com.android.support:support-v4:25.0.1&#39;

compile&#39; com.android.support:appcompat-v7:25.0.1&#39;

compile&#39; com.android.support:support-vector-drawable:25.0.1&#39;

答案 3 :(得分:0)

如果您使用jetpack,那么

添加这些依赖项

app:passwordToggleEnabled="true"

并在XML中添加class DetailSerializer(serializers.ModelSerializer): driver = ListSerializer(read_only=True) # ^^^ class Meta: model = Driver fields = ('place_of_birth','driver','driver','picture')   一件事使用inputtype = textpassword,如果您使用的不是它,则不会显示切换按钮。