防止RecyclerView瀑布流Item闪烁和位置乱动

KisenHuang 2016-11-22 05:59:27
需求:瀑布流展示图片列表,但是没有给出图片大小比例,需要下载图片后计算出图片比例在设置Item高度,已经做了部分处理,但是还会出现Item位置乱动在刷新时出现图片闪烁。

已使用网上的部分解决方案

1. layout.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE);

2. mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
layout.invalidateSpanAssignments();
}
});

3.在适配器中添加Map<Integer,Integer>并在的getView()方法中将对应位置VIew的高度存储到map中
int viewHeight = map.get(position);
if(viewHeight != 0){
ViewGroup.LayoutParams layoutParams = imageView.getLayoutParams();
layoutParams.height = imageHeight;
imageView.setLayoutParams(layoutParams);
}else{
//网络请求获取到图片的Drawable或者bitmap,得到图片宽高比例,并得到View高度viewHeight
map.put(position,viewHeight);
ViewGroup.LayoutParams layoutParams = imageView.getLayoutParams();
layoutParams.height = imageHeight;
imageView.setLayoutParams(layoutParams);
}

即便这样操作之后还会出现问题,请大神们帮忙解决一下
...全文
3840 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
木林森.Y 2018-05-02
  • 打赏
  • 举报
回复
已解决 欢迎探讨 亲测有效果 https://blog.csdn.net/qq_31008549/article/details/80167647
怀君 2017-05-23
  • 打赏
  • 举报
回复
引用 6 楼 lj5077929 的回复:
[quote=引用 5 楼 u013290250 的回复:] 这个问题,你解决了吗? 我已经解决
请问怎么解决的,我现在也遇到同样的情况,谢谢![/quote] 按照楼主的来就可以了。
lj5077929 2017-05-22
  • 打赏
  • 举报
回复
引用 5 楼 u013290250 的回复:
这个问题,你解决了吗? 我已经解决
请问怎么解决的,我现在也遇到同样的情况,谢谢!
怀君 2017-03-12
  • 打赏
  • 举报
回复
这个问题,你解决了吗? 我已经解决
霍强 2017-02-27
  • 打赏
  • 举报
回复
这个解决了吗 我也碰到了这个问题
王三的猫阿德 2016-11-24
  • 打赏
  • 举报
回复
引用 2 楼 KisenHuang 的回复:
@王三的猫阿德 这三个解决方法我都使用过了,还是会出现闪动的问题
现在的闪动具体场景是什么样子的
KisenHuang 2016-11-24
  • 打赏
  • 举报
回复
@王三的猫阿德 这三个解决方法我都使用过了,还是会出现闪动的问题
王三的猫阿德 2016-11-23
  • 打赏
  • 举报
回复
原因是RecyclerView的复用机制导致,系统是不会保存图片大小的,而在图片未加载完毕前是不知道图片大小的,如果复用View,可能会导致ImageView大小的变化,也就是闪烁现象。 只有一些思路,但是没有具体实践。 英文简单思路看这里。 http://stackoverflow.com/questions/27636999/staggeredgridlayoutmanager-and-moving-items 中文说的比较详细具体,你可以看看。 http://blog.csdn.net/windows771053651/article/details/51596744

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧