我有一个RecyclerView与一些瓷砖和ImageView显示一些图像从网络。要加载图像,我使用Glide和好的ol'加载方法:
Glide.with(this) .load(url) .into(myImageView)
尽管正确加载,但图像以随机顺序加载。我不知道如何“指定”装载顺序。
先谢谢你了!
fykwrbwg1#
尽管正确加载,但图像以随机顺序加载。从这个声明中我的理解是,所有的图像都正确地加载到各自的ViewHolder中,但这里的问题是,如果有3个ViewHolder,那么你希望分别从ViewHolder 1,ViewHolder 2,ViewHolder 3加载/显示图像,但目前ViewHolder 2或ViewHolder 3可能会在ViewHolder 1之前显示图像。如果我的上述理解是正确的,那么我想在这里补充几点:1.每个图像的加载时间将取决于响应图像的各种因素,如其大小、尺寸等。1.每当你在RecyclerView中滚动时,ViewHolders将再次获得绑定,这将导致再次请求相同的URL。为了改善这一点,你必须使用Glide缓存机制,这样就可以避免不必要的抓取。1.关于RecyclerView,您应该尝试使用DiffUtil实现它,这是更新更有效的方法。
1条答案
按热度按时间fykwrbwg1#
尽管正确加载,但图像以随机顺序加载。
从这个声明中我的理解是,所有的图像都正确地加载到各自的ViewHolder中,但这里的问题是,如果有3个ViewHolder,那么你希望分别从ViewHolder 1,ViewHolder 2,ViewHolder 3加载/显示图像,但目前ViewHolder 2或ViewHolder 3可能会在ViewHolder 1之前显示图像。
如果我的上述理解是正确的,那么我想在这里补充几点:
1.每个图像的加载时间将取决于响应图像的各种因素,如其大小、尺寸等。
1.每当你在RecyclerView中滚动时,ViewHolders将再次获得绑定,这将导致再次请求相同的URL。为了改善这一点,你必须使用Glide缓存机制,这样就可以避免不必要的抓取。
1.关于RecyclerView,您应该尝试使用DiffUtil实现它,这是更新更有效的方法。