首页 > 解决方案 > 禁用 TextInputEditText 时禁用密码切换 ImageButton

问题描述

当 TextInputLayout 的app:passwordToggleEnabled属性设置为 true 并且 TextInputEditText 的android:enabled属性设置为 false 时,如何防止密码切换 ImageButton 被点击?

<com.google.android.material.textfield.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="24dp"
    android:hint="@string/password"
    app:hintAnimationEnabled="true"
    app:passwordToggleEnabled="true">

    <com.google.android.material.textfield.TextInputEditText
        android:id="@+id/edit_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:maxLength="32"
        android:maxLines="1"
        android:enabled="false"/>

</com.google.android.material.textfield.TextInputLayout>

问题演示

这是错误还是预期行为?

标签: androidandroid-layoutandroid-textinputlayoutandroid-textinputedittext

解决方案


就像我在评论中提到的那样,解决您的问题的一个简单方法是将 setEnabled 的设置TextInputLayout为 false 而不是TextInputEditText. 由于TextInputLayout房屋TextInputEditText,因此整个布局将被禁用。这是一个小演示:

TextInputLayout textInputLayout = findViewById(R.id.textInputLayout);

if(someCondition){
    textInputLayout.setEnabled(false);
}

我希望这会有所帮助.. 编码愉快!


推荐阅读