为了账号安全,请及时绑定邮箱和手机立即绑定

EditText错误图标并显示密码错误放置

EditText错误图标并显示密码错误放置

万千封印 2019-12-29 04:00:01
我有一个EditText作为这样的密码输入<android.support.design.widget.TextInputLayout            android:layout_width="match_parent"            android:layout_height="wrap_content">            <EditText                android:id="@+id/password"                android:layout_width="match_parent"                android:layout_height="wrap_content"                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:singleLine="true" /></android.support.design.widget.TextInputLayout>它可以正常工作,但是当出现错误时,错误图标会显示两次,并且位于显示密码图标的顶部。错误图标放错了位置我的验证代码显示错误:if (success) {    finish();    startMainActivity();} else {         mPasswordView.setError(getString(R.string.error_incorrect_password));            mPasswordView.requestFocus();}
查看完整描述

3 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

不要叫setError上EditText,使用TextInputLayout的SETERROR()

查看完整回答
反对 回复 2020-01-06
?
慕森王

TA贡献1777条经验 获得超3个赞

材质版本1.1.0-alpha10的行为相同,即使您在TextInputLayout中设置了错误也是如此。您可以通过将以下行添加到TextInputLayout来避免这种情况:


app:errorIconDrawable =“ @ null”


查看完整回答
反对 回复 2020-01-06
?
萧十郎

TA贡献1815条经验 获得超12个赞

使用此代码,您可以在显示错误时删除切换。您可以在用户编写任何内容时显示切换。不记得了,您应该给id输入文本布局


public void showError(){

    password.setError(errorMessage);

    password.requestFocus();

    textInputLayout.setPasswordVisibilityToggleEnabled(false);

}



 password.addTextChangedListener(new TextWatcher() {

            @Override

            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

                textInputLayout.setPasswordVisibilityToggleEnabled(true);

            }


            @Override

            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {


            }


            @Override

            public void afterTextChanged(Editable editable) {


            }

        });



查看完整回答
反对 回复 2020-01-06
  • 3 回答
  • 0 关注
  • 567 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信