Recyclerview和cardview图像问题

时间:2016-01-13 14:53:08

标签: android android-recyclerview android-cardview

我正在为shopify网站开发一个商店前端应用程序,并希望在主屏幕上显示图像和产品标题,其中卡片布局从商店服务器中提取数据。

我有显示所有内容并且可以滚动它,但是当快速滚动应用程序时,会显示一些产品会短暂显示不同的产品图像,然后在几秒钟之后加载正确的产品。

有没有办法下载或保持图像缓存,以便它们始终保持在正确的cardView中?有什么东西需要添加到layoutManager或者java中的recyclerView吗?

我在移动设备上,因此无法上传代码,但如果需要可以稍后上传。

3 个答案:

答案 0 :(得分:1)

您的问题:

  

有没有办法下载或保持图像缓存,以便它们始终保持在正确的cardView中?

是的,有一种方法可以使用两个库Picassookhttp来查看更多详情this answer

  

我需要在layoutManager或者java中的recyclerView中添加一些内容吗?

不,你不需要添加任何内容:)

我希望这会对您有所帮助并让您以正确的方式对该库进行许多研究

祝你好运!

答案 1 :(得分:1)

您可以在图像完成加载时隐藏图像视图。即使您将图像存储在设备上,当您在重复使用卡片时滚动时也可能需要一点时间来加载新图像,并且可以包含其他图像。

在recyclerview适配器的onBindViewHolder方法上:

@Override
public void onBindViewHolder(ViewHolder viewHolder, int i) {
    viewHolder.image.setVisibility(View.INVISIBLE);
}

图像完成加载后,将其设置为可见:

image.setVisibility(View.VISIBLE);

这样,在加载图像之前不会显示任何内容。

答案 2 :(得分:0)

要保持图像缓存,您可以:

FirebaseDatabase.getInstance().setPersistenceEnabled(true);