当项目大小发生变化时,RecyclerView会跳转

时间:2016-02-17 10:52:21

标签: android android-recyclerview android-glide

我偶然发现了RecyclerView的问题。情况如下:

  1. 我从Activity导航到另一个RecyclerView,第二个导航Intent
  2. 第二个活动从RecyclerView中读取一个索引并将其RecyclerView跳转到该位置(因此从用户的角度来看,它可能会从中间“开始”)
  3. View包含新闻列表,每个新闻都有一个网络获取的缩略图
  4. 缩略图是使用 Glide 获得的,带有占位符(因此ViewHolder内的ViewHolder首先会以高度X充气,这可能会在缩略图后更改获得)
  5. 现在的问题是,当用户从他们启动的项目向上滚动时,会创建ViewHolders并且 Glide 会请求缩略图。它导致列表项具有一些高度,并在获得缩略图后一秒钟更改它,这反过来导致令人讨厌的“跳跃”(由于大小改变)。它只发生3-4次,直到创建足够RecyclerView来处理整个{{1}}。

    知道怎么防止这种情况?理想情况下,我想让当前的项目向上扩展。

    我已经尝试从底部制作物品堆栈,但它没有解决问题,只是让它发生在下面的项目而不是上面的项目。此外,我不能也不想预测获得的缩略图的大小。

1 个答案:

答案 0 :(得分:1)

我会在循环视图中使用占位符图像。并在该图像可用(下载)时替换该图像。

当你知道tumbnails的大小时,这当然有效。