KunMinX / Linkage-RecyclerView

即使不用饿了么订餐,也请务必收藏好该库!🔥 一行代码即可接入,二级联动订餐列表。
3.65k stars 458 forks source link

点击+号按钮时,菜品数量+1,-号出现,但是滑动列表后-号消失了 #21

Closed TReturn closed 5 years ago

TReturn commented 5 years ago

作者你好,公司项目是一个点餐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状态无法保存。

KunMinX commented 5 years ago

@TReturn 这是未正确使用 adapter 导致。 当 notifyDataSetChange 时,RecyclerView 的 adapter 的 onBindViewHolder 中,会对每一个 item 都进行数据绑定。

换言之,你需要统一设置一个判断,当 条件符合时,显示 - 号,当不符合时,要隐藏 - 号。 例如

if(菜品数量>1){
    显示 - 号
}else{
    隐藏 - 号
}
TReturn commented 5 years ago

哈哈,谢谢大神,今天想了好久想到这个方法,确实是要这样做,现在没问题了。还是对adapter理解的不够透彻