Android TextInputLayout新的支持库中密码切换按钮不可见

12

我已经使用以下设计库进行编译,它在EditText右侧显示密码隐藏/显示按钮。

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

<android.support.design.widget.TextInputLayout
    android:id="@+id/login_password_text_input_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="@dimen/spacing_normal">

    <android.support.v7.widget.AppCompatEditText
        android:id="@+id/login_password_edit_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:drawablePadding="@dimen/spacing_micro"
        android:hint="@string/prompt_password"
        android:imeActionId="@+id/login"
        android:imeActionLabel="@string/action_sign_in_short"
        android:imeOptions="actionUnspecified"
        android:inputType="textPassword"
        android:maxLines="1"
        android:text="password" />

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

比如:

输入图片描述

更新后到

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

不可见,为什么?有bug吗?

请指教。

6个回答

17

2
不用谢。对于同样的情况,我已经检查了版本历史记录,这对我们双方都有帮助。 - pRaNaY

10

我为此问题苦思冥想了好几个小时。

从发布说明中得知:https://developer.android.com/topic/libraries/support-library/revisions.html#

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

所以如果想要恢复它,需要执行以下步骤:

 <android.support.design.widget.TextInputLayout
    ...
    ...
    app:passwordToggleEnabled="true">

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

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

2

在25.0.1中,它已被禁用。如果您需要使用它,您需要手动启用。

请参考此处

TextInputLayout密码切换默认已禁用,以避免不必要的覆盖开发人员指定的末端绘图。可以通过passwordToggleEnabled XML属性手动启用。


2

2
为TextInputLayout添加drawable end,可以在自定义模式下使用endIconMode属性。
例如: <com.google.android.material.textfield.TextInputLayout app:endIconMode="custom" app:endIconDrawable="@drawable/ic_tick_grey" .... </com.google.android.material.textfield.TextInputLayout>

1
使用此功能。
app:passwordToggleEnabled="true"  in TextInputLayout

并更改依赖关系

compile 'com.android.support:appcompat-v7:26.0.1'

为 Android API 26 配置 Gradle

  <android.support.design.widget.TextInputLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/textInputLayout2"
                android:layout_marginLeft="@dimen/box_layout_margin_left"
                android:layout_marginRight="@dimen/box_layout_margin_right"
                android:padding="@dimen/text_input_padding"
                app:passwordToggleEnabled="true">

                <EditText
                    android:id="@+id/et_password"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="5dp"
                    android:drawableLeft="@android:drawable/ic_lock_lock"
                    android:drawablePadding="10dp"
                    android:paddingLeft="35dp"
                    android:gravity="top"
                    android:hint="Password"
                    android:inputType="textPassword"
                    android:paddingRight="@dimen/edit_input_padding"
                    android:paddingTop="5dp"
                    android:singleLine="true">
                </EditText>

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接