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();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值