禁用 TextInputEditText 时禁用密码切换 ImageButton
Disable password toggle ImageButton when TextInputEditText is disabled
当 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>
这是错误还是预期行为?
就像我在评论中提到的那样,解决您的问题的一个简单方法是将 TextInputLayout
的 setEnabled 设置为 false 而不是 TextInputEditText
。由于 TextInputLayout
包含 TextInputEditText
,因此整个布局将被禁用。这是一个小演示:
TextInputLayout textInputLayout = findViewById(R.id.textInputLayout);
if(someCondition){
textInputLayout.setEnabled(false);
}
希望对您有所帮助.. 编码愉快!
当 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>
这是错误还是预期行为?
就像我在评论中提到的那样,解决您的问题的一个简单方法是将 TextInputLayout
的 setEnabled 设置为 false 而不是 TextInputEditText
。由于 TextInputLayout
包含 TextInputEditText
,因此整个布局将被禁用。这是一个小演示:
TextInputLayout textInputLayout = findViewById(R.id.textInputLayout);
if(someCondition){
textInputLayout.setEnabled(false);
}
希望对您有所帮助.. 编码愉快!