0
点赞
收藏
分享

微信扫一扫

在RecyclerView中使用EditText输入框焦点的问题处理

亿奇学 2021-09-19 阅读 171

在开发过程中,在我们会在RecyclerView中使用到EditText,由于View复用机制,如果不好好处理EditText,将会出现一些问题。

其中一个最常见的问题就是输入框的焦点问题,经过多方面尝试,觉得最靠谱的方式就是自定义一个EditText。

通过监听光标移动事件,重写onSelectionChanged(int selStart,int selEnd),然后设置setSelection(int index),使光标始终保持在最后面。


        public class EndEditTextextends AppCompatEditText {

        public EndEditText(Context context) {

        super(context);

            }

        public EndEditText(Context context, AttributeSet attrs) {

        super(context, attrs);

            }

        public EndEditText(Context context, AttributeSet attrs, int defStyleAttr) {

        super(context, attrs, defStyleAttr);

            }

        /**

        * 重写nSelectionChanged

        *

            * @param selStart

            * @param selEnd

            */

            @Override

            protected void onSelectionChanged(int selStart, int selEnd) {

        super.onSelectionChanged(selStart, selEnd);

                //防止不能多选

                if (selStart == selEnd) {

        //让光标始终在内容最后面

                    setSelection(getText().length());

                }

        }

        }

举报

相关推荐

0 条评论