Closed TReturn closed 5 years ago
@TReturn 这是未正确使用 adapter 导致。 当 notifyDataSetChange 时,RecyclerView 的 adapter 的 onBindViewHolder 中,会对每一个 item 都进行数据绑定。
换言之,你需要统一设置一个判断,当 条件符合时,显示 - 号,当不符合时,要隐藏 - 号。 例如
if(菜品数量>1){
显示 - 号
}else{
隐藏 - 号
}
哈哈,谢谢大神,今天想了好久想到这个方法,确实是要这样做,现在没问题了。还是对adapter理解的不够透彻
作者你好,公司项目是一个点餐app,点击+号添加菜品,菜品数量+1,-号出现 代码:
holder.getView(R.id.iv_goods_subtract).setVisibility(View.VISIBLE); holder.getView(R.id.tv_select_num).setVisibility(View.VISIBLE);
打印日志确实只执行了一次点击事件,但是会出现其他分类的几个菜品也出现菜品数量+1,-号出现的情况。这是第一个问题,item状态设置不正确。 滑动列表整个列表后,所有已经点击出现的菜品数量+1,-号都消失了,整个列表恢复成了初始化那样的,这是第二个问题。item状态无法保存。