【问题标题】:Android: list jumps to other post when scrolling because ImageView height is wrap_contentAndroid:滚动时列表跳转到其他帖子,因为 ImageView 高度是 wrap_content
【发布时间】:2017-03-20 13:41:52
【问题描述】:

我有一个列表,其中包含每个包含一个图像的帖子。 ImageView 宽度设置为 match_parent,因此始终相同。 ImageView 高度设置为 wrap_content,因此图像高度并不总是相同。最后一件事是导致滚动问题的原因,因为我也在使用 Glide。在 Glide 加载图片、获取图片的尺寸然后调整 ImageView 的大小之前,系统不知道它必须滚动多远。当图片加载完成并设置 ImageView 高度时,列表“跳跃”并且屏幕显示另一个帖子。当 wrap_content 被一个固定值替换时,这个问题就解决了,但这不是我想要的,因为在这种情况下,一些图像的图片周围有很多空白空间。

还有其他方法可以实现我想要的吗?

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

【问题讨论】:

  • 使用固定尺寸,但设置一个图片占位符显示,在照片加载之前摆脱空白空间
  • 阅读我所说的。我不想使用固定大小,因为在这种情况下,某些图像的图片周围会有很多空白空间(它们的比例并不相同)。

标签: java android scroll imageview android-glide


【解决方案1】:

查看Glide.with.pauseRequests:

如果你调用 Glide.with(fragment/activity).pauseRequests(), new 在您发出相应的 resumeRequests() 之前,请求不会运行 称呼。这些更改使您可以添加 OnScrollListener 并暂停/恢复 请求取决于滚动状态。

【讨论】:

  • 好的,谢谢!这非常有效:if (scrollState == SCROLL_STATE_IDLE || scrollState == SCROLL_STATE_DRAGGING) { Glide.with(getContext()).resumeRequests(); } else { Glide.with(getContext()).pauseRequests(); }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-09-22
  • 2013-11-09
  • 2014-11-17
  • 2022-08-24
  • 1970-01-01
  • 2016-11-06
  • 1970-01-01
相关资源
最近更新 更多