刚写完 RecyclerView 瀑布流后,来回的滑动会发现各种问题:滑动图片闪烁,顶部留有空白,左右位置来回切换;
下面针对这些问题稍微做了以下优化,下面是优化完的效果图:
滑动较快,但是没出现闪烁、留白和位置切换的问题=-=;下面看是如何优化的。
首先加入下面代码,防止item交换位置:
layoutManager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE);//防止item 交换位置
其次加入去掉 RecyclerView 动画代码,防止闪烁:
((DefaultItemAnimator) recyclerView.getItemAnimator()).setSupportsChangeAnimations(false);
((SimpleItemAnimator) recyclerView.getItemAnimator()).setSupportsChangeAnimations(false);
recyclerView.getItemAnimator().setChangeDuration(0);
最后监听 RecyclerView 滑动,防止第一行留有空白:
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {