安卓瀑布流错乱 滑动闪烁 顶部留白 的解决方案

基本上网上给出的解决问题方案为:

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

     

 

以上代码给LayoutManager和Recycleview设置之后的确可以解决部分问题,但是依然存在着顶部item留白错乱的问题,虽然在onScrollStateChanged中动态的去重新计算了高度 但是效果依然不尽人意。

其实在调用invalidateSpanAssignments的同时就决定了,只要是触摸滑动那么页面会进行重新测量绘制,因此导致在回到顶部 或者 滑动过程中依然有item的位置会变化 顶部有留白因此该方法不能调用

有人提出, 用IntentService中来写代码块,使用第三方图片加载框架例如Glide的asBitmap来预先获取图片的Bitmap同时将宽高保存赋予实体类,这种情况在后台不提供图片的宽高时,只有使用该方法,但是该方法的效率较

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值