2 回答
TA贡献1834条经验 获得超8个赞
当回收器视图回收(顾名思义)您可见的视图并为导致此问题的每组项目提供相同的一组 id 时,就会发生这种情况。
这个问题有 2 个解决方案:
1)停止recyclerview的回收行为如下:-
@Override
public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int i) {
myViewHolder.setIsRecyclable(false);
}
但我强烈拒绝使用这个,因为回收是我们使用 recyclerview 的原因。
2) 使用 POJO 类:-
最好的解决方案是使用一个 POJO 类,它有两个变量,第一个是值,第二个是布尔变量,它显示项目是否禁用。对于您要禁用的项目,将 POJO 布尔变量的值设置为 true,并在 onBindViewHolder 方法中仅禁用在布尔变量中设置为 false 的项目的按钮。
如果您仍然感到困惑,请联系我,我会给您发送一个示例。
TA贡献1862条经验 获得超6个赞
您需要保持这些按钮的状态。您可以在填充 recyclerview 的列表的项目(例如 等)中保存状态isNegativeEnabled
。willPositiveDisplay
当您单击肯定按钮时,更改willPositiveDisplay
为 false。
list[position].willPositiveDisplay = false;
list[position].willPositiveDisplay
如果没有设置为消失,则检查是否为真,将可见性设置为可见。并为否定按钮执行此操作。
添加回答
举报