【问题标题】:Android TextInputLayout Password toggle not visible in new support libraryAndroid TextInputLayout 密码切换在新的支持库中不可见
【发布时间】:2017-04-27 04:17:10
【问题描述】:

我用以下设计库编译,它在EditText

右侧显示密码HIDE/SHOW按钮

编译'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>

喜欢:

更新后

编译'com.android.support:design:25.0.1'

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

请指导。

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 不客气。对于同样的情况,我检查了恢复历史,这对我们双方都有帮助。
    【解决方案2】:

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

    检查参考here

    TextInputLayout 密码切换现在默认禁用为 避免不必要地覆盖开发人员指定的最终可绘制对象。它 可以通过 passwordToggleEnabled XML 属性手动启用。

    【讨论】:

      【解决方案3】:

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

      see revision for 25.0.1

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

      【讨论】:

        【解决方案4】:

        我用这个砸了几个小时的头。

        来自发行说明: 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>
        

        【讨论】:

          【解决方案5】:

          使用这个

          app:passwordToggleEnabled="true"  in TextInputLayout
          

          并改变依赖关系

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

          Setting up Gradle for api 26 (Android)

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

          【讨论】:

            【解决方案6】:

            将 endIconMode 添加到 Custom 以为 textinputlayout 添加可绘制结束。

            <com.google.android.material.textfield.TextInputLayout app:endIconMode="custom" app:endIconDrawable="@drawable/ic_tick_grey" .... </com.google.android.material.textfield.TextInputLayout>

            【讨论】:

              猜你喜欢
              • 2017-05-13
              • 2017-07-26
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-04-16
              相关资源
              最近更新 更多