Android: 列表在滚动时跳转到其他 post 因为 ImageView 高度是 wrap_content

Android: list jumps to other post when scrolling because ImageView height is wrap_content

我有一个列表,其中包含 post 个,每个包含一个图像。 ImageView 的宽度设置为match_parent,所以它总是一样的。 ImageView 高度设置为 wrap_content,因此图像高度并不总是相同。最后一件事是导致滚动出现问题的原因,因为我也在使用 Glide。在 Glide 加载图片、获取图片的尺寸然后调整 ImageView 的大小之前,系统不知道它必须滚动多远。图片加载完成并设置 ImageView 高度后,列表 "jumps" 和屏幕显示另一个 post。把wrap_content换成固定值就解决了,但这不是我想要的,因为那样的话有的图片周围有很多空的space

有没有其他方法可以达到我想要的效果?

编辑:解决方案有效,但仍然不是我们想要实现的。我们最终更改了 JSON。它现在也显示一个比率,可以在加载图片之前计算 ImageView 的大小。这样ImageView无论如何都是固定尺寸的,不过是个别的固定尺寸。

查看 Glide.with.pauseRequests

if you call Glide.with(fragment/activity).pauseRequests(), new requests will not run until you make a corresponding resumeRequests() call. Those changes let you add an OnScrollListener and pause/resume requests depending on the scroll state.