实现一个可定制化的TabFlowLayout(四) -- 与ViewPager 结合,实现炫酷效果
效果图 FlowHelper工程源码 最后就来实现 跟着 viewpager 的效果,如下: 可以看到 ,上面实现了几个效果: 1、子控件的背景跟着自身大小自动变化 2、背景跟着viewpager的滚动自动滑动 3、当移动到中间,如果后面有多余的数据,则让背景保持在中间,内容移动 一、自定义背景 首先,实现一个红色背景框框;首先,思考一下,在 viewgroup 实现 canvas , 是在 onDraw(Canvas canvas) 绘制,还是在 dispatchDraw(Canvas canvas) 呢? 答案肯定是 dispatchDraw 绘制了,为什么呢?这里解释几个概念: onDraw 绘制内容 onDraw 为实际要关心的东西,即所有绘制都在这里。 dispatchDraw 只对ViewGroup有意义 dispatchDraw 通常来讲,可以解释成绘制 子 View View 继承drawable,view 组件的绘制会先调用 draw(Canvas canvas) 方法,然后先绘制 Drawable背景,接着才是调用 onDraw ,然后调用 dispatchDraw方法。dispatchDraw 会分发给组件去绘制。 不过 View 是没有子 view 的,所以dispatchDraw对它来说没意义。 所以,当自定义 ViewGroup 时,加入