recyclerview中有edittext的处理

recyclerview一般用于数据的展示,如果作为数据的填写(EditText)时往往会有很多的问题,比如获取焦点、textwatcher的添加,数据监听错乱(删除某项后)等,一开始碰到这个问题着实让我发愁,没有找到合适的处理办法。不过后来终于顺利解决。记录一下

1、首先面临的是textwatcher的重复添加问题(也是最主要的问题),想到了其实很简单,就是在viewholder中直接绑定,不要再convert方法中处理,

    public class MyViewHolder extends RecyclerView.ViewHolder{
        @Bind(R.id.et_photo) EditText et;
        public MyWatcher mWatcher = new MyWatcher(this);

        public ImageViewHolder(View view) {
            super(view);
            ButterKnife.bind(this, view);
            et.addTextChangedListener(mWatcher);

当然MyWatcher可以需要继承TextWatcher,一般在onTextChanged方法中做一些自定义处理,比如剩余字数监听与显示

2、对于行数过多滑动冲突问题需要在ViewHolder的EditText的setOnTouchListener监听中v.getParent().requestDisallowInterceptTouchEvent(true);

3、对于第一Edittext获取不到焦点的问题是因为EditText默认FocusableInTouchMode为false,否则第一次获取不到点击事件,需设置

et.setFocusableInTouchMode(true);
et.requestFocus();
    原文作者:达达-尼尔
    原文地址: https://blog.csdn.net/adarcy/article/details/55015873
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞