Android Launcher3分析——自定义控件之Workspace
绘制方面
可以参考文章Android View的绘制流程分析
onMeasure
Workspace 并没有进行什么测量工作,测量工作都交给其父类PagedView处理,看看PagedView的onMeasure如何处理的。
1 | protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { |
onLayout
1 |
|
主要还是调用PagedView的onLayout方法,只是在调用之前根据是否第一次Layout及当前页是否在有效范围来对Launcher壁纸的偏移量做处理。
onDraw
1 |
|
调用PagedView的onDraw方法,然后告知通知LauncherModel绑定完成。
注意:ViewGroup作为一个View的容器,为了性能上的考虑,通常是不需要调用自己的onDraw函数的(不需要重写),只有在我们设置了ViewGroup的背景或者调用setWillNotDraw(false)时才会调用。
事件处理方面
可以参考文章Android View的事件处理流程分析