Android 回收器视图的getItemViewType和getItemId方法的使用
我遇到了一个问题:当我在recycler视图中单击单个项目的复选框时,其他项目的复选框也被选中了……但当我跳过这两种方法并用它重新定位时,问题就解决了。。。。 所以我的问题是他们是如何解决我的问题的 已经知道android文档中写了什么Android 回收器视图的getItemViewType和getItemId方法的使用,android,android-recyclerview,Android,Android Recyclerview,我遇到了一个问题:当我在recycler视图中单击单个项目的复选框时,其他项目的复选框也被选中了……但当我跳过这两种方法并用它重新定位时,问题就解决了。。。。 所以我的问题是他们是如何解决我的问题的 已经知道android文档中写了什么 @Override public long getItemId(int position) { return position; } @Override public int getItemViewType(int position) { re
@Override
public long getItemId(int position) {
return position;
}
@Override
public int getItemViewType(int position) {
return position;
}
getItemViewType()主要用于根据位置显示不同类型的视图
假设您有一个聊天适配器,发送方用户聊天应该位于右侧,接收方用户聊天应该位于左侧。在这种场景中,您可以使用getItemViewType(基于用户id,您可以显示不同的视图)
getItemId():当我们尝试为特定项目执行特定任务时,通常使用此选项。对于getItemId,您可以检查此项 它们实际上通过传递listgetItemId中的位置来告诉单击的项目必须返回唯一的值。您是否添加了if else检入ViewHolder?因为仅使用“if”是不够的,所以我认为在您想要在适配器中定义HeaderView和ChildView时,还需要通知以前选择的元素以及if-ElSe。您可以使用getItemViewType。其中getItemId是适配器中单个项的唯一id。