我的项目中,在一个recycleView有一个EditText,里面输入内容的时候,下面一个list列表匹配出数据。
但是不像手机搜索联系人这样,EditText一直占有焦点。
这个一旦匹配出数据,调用notifyDataSetChanged()的时候,EditText就会失去焦点,软键盘就会自己关闭,这样每次输入一个字符想再次输入的时候又要再点击这个EditText,对用户体验很不好。
这个原因是因为调用notifyDataSetChanged()会刷新整个view,这时候焦点就会失去。
解决办法:
调用notifyItemRangeChanged ,这个方法是刷新一个范围数据,你只要设置这个范围是全部就行,而且不会让这个EditText失去焦点,就跟手机搜索联系人那样,除非按手机的返回键或者软键盘的隐藏键盘的按钮,键盘才关闭。