Android TextInputLayout密码切换在新支持库中不可见

时间:2016-12-12 10:13:45

标签: android android-edittext android-textinputlayout android-textinputedittext

我已使用以下设计库进行编译,并在 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>

像:

enter image description here

更新到

  

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

它不可见,为什么?有没有错误?

请指导。

6 个答案:

答案 0 :(得分:15)

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

来自https://developer.android.com/topic/libraries/support-library/revisions.html

答案 1 :(得分:6)

我用这个砸了几个小时。

从发行说明中: 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 :(得分:2)

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

检查参考here

  

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

答案 3 :(得分:2)

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

see revision for 25.0.1

注意:每个开发人员都必须查看修订文档。

答案 4 :(得分:2)

使用此

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

并更改依赖

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

Setting up Gradle for api 26 (Android)

vecO=repmat(vec,1,9);
fi = repmat(vecO',1,400)-A;

答案 5 :(得分:0)

将endIconMode添加到“自定义”中,以为textinputlayout添加可绘制的结尾。

setState(() {})