功能拆解1:页面内展示多个可滑动的里程碑分为多种情况2个/3个/4个/10个进度气泡,屏幕内最多展示4个超出4个滑动效果,4个以内等分效果
气泡和气泡的间距=(获取屏幕宽度 - (数据的length(大于4=4)*一个气泡固定宽度-padding*2))/数据的length-1
每个气泡的marginRight = 气泡和气泡的间距
功能拆解2:画一条常规的进度条,进度条内遍历小圆点,小圆点的位置计算和上面气泡的是一样的,小圆点父级宽度=气泡宽度,然后设置小圆点居中
功能拆解3:下面文案居中对齐,因为有的文案超出长度了为了方便计算
文字盒子宽度 = 如果是第一个盒子?一个气泡的宽度+气泡和气泡的间距/2:气泡的宽度+气泡和气泡的间距(点和点的中心位置)
设置里面的文案内容居中对齐
功能拆解4:进度计算
完成率 = (当前进度 - 上一阶梯进度)/(下一阶梯进度 - 上一阶梯进度)
如果是第一段进度 = (气泡宽度/2)*完成率
如果非第一段进度 = (气泡宽度/2 )+ (气泡宽度+气泡和气泡的间距)*(当前进度的索引-1)+(气泡宽度+气泡和气泡的间距)* 完成率
如果进度完成了,宽度设置100%
功能拆解5:进度如果差一点点到达目标值但是视觉上看不出来
判断如果快到目标了距离<4那么宽度-4,4是随意给的值,根据视觉效果来