SprintNBA模仿笔记(三)-2补充,viewpager和标签闪屏问题修复

昨天做的那个联动,SprintNBA项目模仿笔记(三)如何做一个优秀的tab标签-ViewPager联动,测试后发现闪屏问题,今天解决,进行补充。

bug详情:当viewpager滑动后,间接会调用setTab,时间是viewpager滑动到左边一个标签抬起后圆角背景闪烁了一次。

分析原因,定然是圆角背景的left问题,于是对left进行日志输出,果然,setTab后出现了问题,setTab后,left值第一次和第二次相差很大,分析原因:
viewpager算出的offset值是针对左边标签的正向值,当反向滑动时,我需要的值和这个值相加等于一。

可能这样说会比较晕,举个栗子。
当1标签滑动到0标签时,假如滑动的情况如下:
这里写图片描述

viewpager滑动时,记录的position=0,offset = 20/50=0.4,newPos = 1,此时为正向计算正确。

当松手时,selectedPos = 1,newPos = 0,此时offset值还没有更新,依旧是0.4,所以这一瞬间发生了闪烁,后面的由viewpager调用方法后更新。可以看到,这里的offset值应该为0.6
所以点击事件时,加上了几句话:

 if(selectedPos > newPos){
        followOffset = 1.0f - followOffset;
 }

解决,稍后会更新标签滚动居中同步,现在是页面变化后才滚动居中,大家一起进步ヽ( ̄▽ ̄)ノ

模仿项目地址:https://github.com/nfwuzhongdemeng/ImitateNBA
原项目地址:https://github.com/smuyyh/SprintNBA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值