美文网首页
Edittext光标首次在最后,后面正常移动

Edittext光标首次在最后,后面正常移动

作者: Rex_叶然 | 来源:发表于2019-01-04 18:47 被阅读0次

    这是最近一个小需求,但始终没有达到产品需求,修改Edittext任何事件在修改经常会导致方法反复触发,如果判断不到位经常达不到效果。实验过后网上效果都不理想,现在po出最后的完美方案。

     * Created by Rex on 2019/1/3.
     */
     
    public class AutoRightEditText extends EditText {
     
        public boolean isFirstOnClick = true;
        private boolean isShowEnd;
     
        public AutoRightEditText(Context context) {
            super(context);
            initView();
        }
     
     
        public AutoRightEditText(Context context, AttributeSet attrs) {
            super(context, attrs);
            initView();
        }
     
        public AutoRightEditText(Context context, AttributeSet attrs, int defStyleAttr) {
            super(context, attrs, defStyleAttr);
            initView();
        }
     
        private void initView() {
            setClickable(true);
            /**
             * 如果你本身使用的该方法记得 !hasFocus--->isFirstOnClick = true
             */
     
            setOnFocusChangeListener(new OnFocusChangeListener() {
                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                    if (!hasFocus) {
                        isFirstOnClick = true;
                    }
                }
            });
        }
     
        @Override
        protected void dispatchSetPressed(boolean pressed) {
            super.dispatchSetPressed(pressed);
     
            if (isFirstOnClick && isPressed()) {
                isShowEnd = true;
                int len = getText().length();
                setSelection(len);
            } else {
                isShowEnd = false;
                isFirstOnClick = false;
            }
     
        }
     
        @Override
        protected void onSelectionChanged(int selStart, int selEnd) {
            super.onSelectionChanged(selStart, selEnd);
            if (isShowEnd && selStart == selEnd) {
                setSelection(getText().length());
            }
            
     
        }
     
     
    }
     
    --------------------- 
    作者:Rex叶然 
    原文:https://blog.csdn.net/qq_28844947/article/details/85791687 
    
    

    相关文章

      网友评论

          本文标题:Edittext光标首次在最后,后面正常移动

          本文链接:https://www.haomeiwen.com/subject/gfbkrqtx.html