我在我的回收站视图中有奇怪的行为,我不明白。我在我的OnBindViewHolder中使用以下代码()
@Override
public void onBindViewHolder(@NonNull ProductAdapter.OurViewHolder viewHolder, int i) {
Product currentItem = adapterData.get(i);
viewHolder.productNamesFragmentItemsBinding.setProductName(currentItem);
if (currentItem.getPhotoUris() != null) {
Picasso.get().load(currentItem.getPhotoUris().get(0))
.into(viewHolder.productNamesFragmentItemsBinding.ivProductImage);
}
if (mViewModel.isCartContainsThisProduct(currentItem.getIdProducts())) {
System.out.println("calling is cart contains");
viewHolder.productNamesFragmentItemsBinding.btnAddToCart.setVisibility(View.GONE);
viewHolder.productNamesFragmentItemsBinding.btnAdded.setVisibility(View.VISIBLE);
viewHolder.productNamesFragmentItemsBinding.btnCancel.setVisibility(View.VISIBLE);
} else {
System.out.println("calling cart not contains");
viewHolder.productNamesFragmentItemsBinding.btnAddToCart.setVisibility(View.VISIBLE);
viewHolder.productNamesFragmentItemsBinding.btnAdded.setVisibility(View.GONE);
viewHolder.productNamesFragmentItemsBinding.btnCancel.setVisibility(View.GONE);
}
}
我有五个项目在我的适配器,在位置2没有网址,仍然它加载图像有时但不总是。
还有一件事,我注意到有一个按钮“添加到购物车”,当点击时,它会刷新这个位置上的物品。所以,如果我在任何位置点击这个按钮,比如在位置5,然后再次点击位置2(我没有url),位置5的图像会在位置2加载。
这一点也不奇怪。这就是RecyclerView
的工作原理,它基本上是将相同的ViewHolder
重新用于下一个项目。你的代码问题包括if(currentItem.getPhotoUris()!=空)
如果您错过了其他
部分,即清除图像或设置占位符。
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)
}
我有一个HorizontalGridView,一切都工作得很好,但是我正在用毕加索加载图像,每当图像加载时,HorizontalGridView就会弹回第一个项目/开始滚动的位置。我还有一个活动上的地图片段,并注意到当地图与之交互时,HorizontalGridView显示相同的行为。下面是适配器代码。请帮助,已经卡在这个上面几天了... }
我正在使用毕加索图书馆。我知道,如果我将图片从URL加载到图像视图中,有一种回调方法。但我不想加载到imageview中。相反,我想将其另存为位图。所以我用了下面的代码 我怎样才能得到一个回调方法,知道我的图像是成功下载使用毕加索? 不要说位图对象的空检查。这会导致错误。
我面临毕加索无法快速加载图像的问题。 有3个显示左、中、右图像。在快进/后退时,对于给定的时间点,选择左、中、右并显示在三个框中。 这是初始化。缓存是100MB以及99MB的 窗口移动的图像数是3000。所以我将图像预加载为 平均图像大小为10KB-320x180,因此达到35MB,小于99MB。 当快速循环工作时,许多图像是(来自)和(来自),但在几个快速循环之后,3个图像冻结或变得非常慢。此时
正如你可以看到的使用链接,毕加索只有3个选项加载一个图像。我的问题是,如果您有一个从API的JSON响应解析的base64字符串,那么如何加载图像?
我正在使用volley向tmdb数据库发出RESTAPI请求,以加载有关电影的信息。回收器视图应显示缩略图图像海报。但它没有显示任何东西。我正在使用毕加索图书馆加载图像。图像链接构造得很好,我已经用log语句检查过了 主要活动。xml 列出项目布局。xml 主要活动 电影数据加载器
我有一个从服务器加载映像的项目。我这样用毕加索, 多谢了。