VerificationCodeView icon indicating copy to clipboard operation
VerificationCodeView copied to clipboard

clearInputContent()与焦点背景问题

Open idealgn opened this issue 5 years ago • 7 comments

 private void setText(String inputContent) {

        for (int i = 0; i < mPwdTextViews.length; i++) {
            PwdTextView tv = mPwdTextViews[i];
            if (tv.getText().toString().trim().equals("")) {
                if (mEtPwd) {
                    tv.drawPwd(mEtPwdRadius);
                }
                tv.setText(inputContent);
                // 添加输入完成的监听
                if (inputCompleteListener != null) {
                     //step  one
                    inputCompleteListener.inputComplete();
                }
                tv.setBackgroundDrawable(mEtBackgroundDrawableNormal);
                if (i < mEtNumber - 1) {
                  //step  two
                    mPwdTextViews[i + 1].setBackgroundDrawable(mEtBackgroundDrawableFocus);
                }
                break;
            }
        }
    }

如果在step one的inputComplete()方法中调用了clearInputContent();那么step two为什么还要继续设置后续的焦点背景?是不是要调换下顺序?我在使用中遇到这个问题了.

idealgn avatar May 31 '19 03:05 idealgn

 // 给TextView 设置文字
    private void setText(String inputContent) {

        for (int i = 0; i < mPwdTextViews.length; i++) {
            PwdTextView tv = mPwdTextViews[i];
            if (tv.getText().toString().trim().equals("")) {
                if (mEtPwd) {
                    tv.drawPwd(mEtPwdRadius);
                }
                tv.setText(inputContent);
                tv.setBackgroundDrawable(mEtBackgroundDrawableNormal);
                if (i < mEtNumber - 1) {
                    mPwdTextViews[i + 1].setBackgroundDrawable(mEtBackgroundDrawableFocus);
                }
                // 添加输入完成的监听
                if (inputCompleteListener != null) {
                    inputCompleteListener.inputComplete();
                }

                break;
            }
        }
    }

我这样调整下顺序,就可以了

idealgn avatar May 31 '19 04:05 idealgn

 // 给TextView 设置文字
    private void setText(String inputContent) {

        for (int i = 0; i < mPwdTextViews.length; i++) {
            PwdTextView tv = mPwdTextViews[i];
            if (tv.getText().toString().trim().equals("")) {
                if (mEtPwd) {
                    tv.drawPwd(mEtPwdRadius);
                }
                tv.setText(inputContent);
                tv.setBackgroundDrawable(mEtBackgroundDrawableNormal);
                if (i < mEtNumber - 1) {
                    mPwdTextViews[i + 1].setBackgroundDrawable(mEtBackgroundDrawableFocus);
                }
                // 添加输入完成的监听
                if (inputCompleteListener != null) {
                    inputCompleteListener.inputComplete();
                }

                break;
            }
        }
    }

我这样调整下顺序,就可以了

麻烦 你请求合并下代码 我来同意

JackTuoTuo avatar Sep 21 '19 06:09 JackTuoTuo

我不懂怎么请求合并代码啊老哥

idealgn avatar Oct 08 '19 06:10 idealgn

image

JackTuoTuo avatar Oct 08 '19 06:10 JackTuoTuo

ok,我试下,但愿不会把项目搞乱

idealgn avatar Oct 08 '19 07:10 idealgn

老哥你看下,我提交上去了

idealgn avatar Oct 08 '19 07:10 idealgn

image

JackTuoTuo avatar Oct 08 '19 07:10 JackTuoTuo