Android 毕加索加载图像,即使在recyclerView中的特定位置没有图像url?
我的回收视图中有奇怪的行为,我无法理解。我在OnBindViewHolder()中使用以下代码 我的适配器中有五个项目,位置2没有url,但它有时会加载图像,但并不总是这样Android 毕加索加载图像,即使在recyclerView中的特定位置没有图像url?,android,android-recyclerview,picasso,Android,Android Recyclerview,Picasso,我的回收视图中有奇怪的行为,我无法理解。我在OnBindViewHolder()中使用以下代码 我的适配器中有五个项目,位置2没有url,但它有时会加载图像,但并不总是这样 还有一件事我注意到有一个按钮“添加到购物车”,当点击这个按钮时,它会在这个位置刷新项目。所以,如果我在任何位置点击这个按钮,比如说在位置5,然后再次点击位置2(我没有url),位置5的图像将加载到位置2。这一行为一点也不奇怪。这就是RecyclerView的工作原理,它基本上是将相同的ViewHolder重新用于下一个项目。
还有一件事我注意到有一个按钮“添加到购物车”,当点击这个按钮时,它会在这个位置刷新项目。所以,如果我在任何位置点击这个按钮,比如说在位置5,然后再次点击位置2(我没有url),位置5的图像将加载到位置2。这一行为一点也不奇怪。这就是
RecyclerView
的工作原理,它基本上是将相同的ViewHolder
重新用于下一个项目。
您的代码问题包括if(currentItem.getPhotoUris()!=null)
如果您错过了else
部分,即清除图像或设置占位符
if (!TextUtils.isEmpty(currentItem.getPhotoUris())) {
Picasso.get().load(currentItem.getPhotoUris().get(0))
.into(viewHolder.productNamesFragmentItemsBinding.ivProductImage);
}else{
// you can set a placeholder image here
viewHolder.productNamesFragmentItemsBinding.ivProductImage.setImageResource(0)
}
这一点也不奇怪。这就是
RecyclerView
的工作原理,它基本上是将相同的ViewHolder
重新用于下一个项目。
您的代码问题包括if(currentItem.getPhotoUris()!=null)
如果您错过了else
部分,即清除图像或设置占位符
if (!TextUtils.isEmpty(currentItem.getPhotoUris())) {
Picasso.get().load(currentItem.getPhotoUris().get(0))
.into(viewHolder.productNamesFragmentItemsBinding.ivProductImage);
}else{
// you can set a placeholder image here
viewHolder.productNamesFragmentItemsBinding.ivProductImage.setImageResource(0)
}