前几天解决了一下这个问题本来没当回事,没想到今天恰巧有人问,在这里简单记录一下:
问题描述:
加载一个列表,当列表数据符合一定要求时去掉该item(无论是使用listview还是recyclerview加载列表道理等同)
刚开始遇到这个问题想到的第一种解决方案就是在adapter中加载item时去判断一下本条item数据是否应该gone掉,如果符合要求,那么久直接将整条item进行gone掉。如果你是这样处理的你会发现就算gone掉,在原本应该显示该item的地方会出现一条空白,也就是说item的位置还在那里,只是content不显示而已,像这种情况这种解决方案解决不了问题。
原因就是你的数据源----暂且称为mList 包含着那条item数据,item的view的加载数量是有mlist.size()决定的,gone掉之后那条item已经加载出来会占有一个位置。所以要想彻底解决这种问题,就要从数据源着手,先将列表数据mList处理完了之后再传给adapter去加载