RecycleView调用notifyDataSetChanged()时,HeaderView中的EditText失去焦点

最近在项目中遇到要把搜索框与列表一起滑动,于是就在recycleview的的HeaderView中添加了一个edittext,但是问题来了,每次当我调用notifyDataSetChanged()刷新数据的时候,edittext的焦点就会自动消失,尝试了很久,找出两种解决办法:

  1. 在adapter中复写此方法

     @Override  
     public long getItemId(int position) {  
     	return position;  
     }
    

    然后设置

     adapter.setHasStableIds(true);  
    

    如果还不起作用可以禁掉recycleview的动画,

     mRecyclerView.setItemAnimator(null);
    
  2. 不要调用notifyDataSetChanged()刷新,调用notifyItemRangeChanged()方法进行范围刷新,不刷新HeaderView。

你可能感兴趣的:(android)