要解决“Android TextInputLayout密码切换功能不起作用”的问题,您可以尝试以下解决方法:
implementation 'com.google.android.material:material:1.4.0'
TextInputLayout passwordTextInputLayout = findViewById(R.id.passwordTextInputLayout);
TextInputEditText passwordTextInputEditText = findViewById(R.id.passwordTextInputEditText);
passwordTextInputLayout.setEndIconOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean isPasswordVisible = passwordTextInputEditText.getInputType() == InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD;
passwordTextInputEditText.setInputType(isPasswordVisible ?
InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD :
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
passwordTextInputEditText.setSelection(passwordTextInputEditText.getText().length());
passwordTextInputLayout.setEndIconActivated(isPasswordVisible);
}
});
这将为切换密码可见性的图标添加一个点击事件,并根据当前密码可见性切换输入框的inputType和图标状态。
请注意,如果您在TextInputEditText的xml布局中使用了android:inputType="textPassword"
,则切换密码可见性的功能可能无法正常工作。因此,您应该在代码中处理密码可见性的切换。
希望这些解决方法能够帮助您解决“Android TextInputLayout密码切换功能不起作用”的问题。如果问题仍然存在,请提供更多的代码示例和错误日志以便我们更好地帮助您解决问题。