瀑布流 位置变换网上一搜一堆 全是一下这种方法,然而还是会有问题

 

manager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE);//防止item 交换位置recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {    @Override    public void onScrollStateChanged(RecyclerView recyclerView, int newState) {        super.onScrollStateChanged(recyclerView, newState);        manager.invalidateSpanAssignments(); //防止第一行到顶部有空白区域    }});

其实可以不用写这两种方法,就可以解决了。

在请求到数据之后,我们一般是用

 

Adapter.notifyDataSetChanged();

但是瀑布流,这里我们需要换一种方法就是

 

Adapter.notifyItemInserted(mPosition);

这个mPosition就是加载新数据集合的大小 比如 list.size();

这样就可以完美解决item变换的问题了,完美。

其次就是要注意:

 

if (mHeights.size() <= position) {    mHeights.add((int) (height / ((float) width / (StringUtil.getWidths(context) / 2 - 30))));}StaggeredGridLayoutManager.LayoutParams params = (StaggeredGridLayoutManager.LayoutParams) holder.rlAll.getLayoutParams();params.height = mHeights.get(position);holder.rlAll.setLayoutParams(params);

1.适配器里面的宽高需要用集合存起来,防止复用的时候重新计算高度出现问题

2.一定要先计算高度,然后加载图片(切记)

还有其他问题欢迎探讨!QQ 240272348

更多相关文章

  1. android ListView 刷新数据,加载时遇到的数组越界问题
  2. android sdk content loader 加载很慢的解决方法
  3. Android获取状态栏、标题栏、ActionBar以及屏幕的高度
  4. Android ProgressBar 自定义样式(六),仿真QQ pad版加载(位置居中)
  5. Android获取屏幕的高度和宽度
  6. android 中listview滑动加载的简单demo
  7. Android在WebView加载数据时展示loading的Dialog
  8. 【Android】获取屏幕分辨率和顶栏高度全屏和横屏

随机推荐

  1. Android中TextSwitcher的功能与用法
  2. Android(安卓)OpenGL ES正方体纹理贴图(
  3. DroidPlugin插件框架 - 《Android必备技
  4. Android(安卓)Studio 添加jar或aar依赖的
  5. Android的View的VISIBLE,INVISIBLE,GONE
  6. Android(安卓)可拖拽悬浮按钮
  7. 使用showmap分析android进程内存占用情况
  8. 详解Android中的屏幕方向类型
  9. 纯css3无js实现的Android(安卓)Logo(有简
  10. 百度地图应用开发(一)