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

在开发过程中,在我们会在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());

                }

        }

        }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容