android view 中各函数的执行顺数

这个就好像是 activity 的生命周期一样,如果我们要使用自定义的 view,那么就很有必要了解一下 view 的那些能够被重写的函数的执行顺序。废话不多讲,以常用的5个函数为例子,见下文:

 1 package com.example.pulltorefreshtest;
 2 
 3 import android.content.Context;
 4 import android.graphics.Canvas;
 5 import android.util.AttributeSet;
 6 import android.util.Log;
 7 import android.view.View;
 8 
 9 /**
10  * Created by Administrator on 2015/7/12.
11  */
12 public class testView extends View {
13     public testView(Context context, AttributeSet attrs) {
14         super(context, attrs);
15     }
16 
17     @Override
18     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
19         Log.d("------","---onMeasure");
20         super.onMeasure(widthMeasureSpec, heightMeasureSpec);
21     }
22 
23     @Override
24     protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
25         Log.d("------","---onLayout");
26         super.onLayout(changed, left, top, right, bottom);
27     }
28 
29     @Override
30     protected void onFinishInflate() {
31         Log.d("------","---onFinanshInflate");
32         super.onFinishInflate();
33     }
34 
35     @Override
36     protected void onDraw(Canvas canvas) {
37         Log.d("------","---onDraw");
38         super.onDraw(canvas);
39     }
40 
41     @Override
42     protected void onSizeChanged(int w, int h, int oldw, int oldh) {
43         Log.d("------","---onSizeChanged");
44         super.onSizeChanged(w, h, oldw, oldh);
45     }
46 }

运行结果:

07-12 13:44:45.413  23734-23734/? D/------﹕ ---onFinanshInflate
07-12 13:44:45.443  23734-23734/? D/------﹕ ---onMeasure
07-12 13:44:45.493  23734-23734/? D/------﹕ ---onSizeChanged
07-12 13:44:45.493  23734-23734/? D/------﹕ ---onLayout
07-12 13:44:45.503  23734-23734/? D/------﹕ ---onMeasure
07-12 13:44:45.503  23734-23734/? D/------﹕ ---onLayout
07-12 13:44:45.503  23734-23734/? D/------﹕ ---onDraw

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Sorrower的专栏

界面无小事(五):自定义TextView

773
来自专栏Android开发指南

15.瀑布流、测量

2867
来自专栏Android开发指南

13.按比例显示图片、自定义属性、测量

35210
来自专栏Android干货

Android项目实战(十五):自定义不可滑动的ListView和GridView

2665
来自专栏向治洪

PullToRefreshScrollView 嵌套RecyclerView实现特卖列表倒计时抢购

不久之前,我们谈到了通过Handler与timer及TimerTask结合实现倒计时抢购列表,那个是PullToRefreshListView实现的,今天要讲的...

2635
来自专栏数据结构与算法

codechef September Challenge 2018 Division 2 A-F

最大的是:$2, 3, 4, 5, n / 2, 1, 2 + n / 2, 3 + n / 2, 4 + n  /2 ...$

713
来自专栏xingoo, 一个梦想做发明家的程序员

Floyd

另一个求解最短路径的经典算法是Floyd,时间复杂度为O(n^3),所以如果只求一个点到另一个点的最短路径,应该用Dijkstra算法,时间复杂度为O(n^2)...

2027
来自专栏数据结构与算法

cf1059D. Nature Reserve(三分)

然后第二维的二分是没有必要的,直接拿圆的标准方程推一下取个最大值就行了。。。。。昨晚没想到qwq给数学老师丢脸了。。

1134
来自专栏吴小龙同學

Android CustomView

View工作流程 View工作流程主要指measure、layout、draw这三个流程,即测量、布局和绘制,其中measure确定View的自身的宽高,lay...

30311
来自专栏数据结构与算法

BZOJ3498: PA2009 Cakes(三元环)

如果\(v\)的度数\(\leqslant M\),那么就再暴力枚举\(v\)连出去的点\(t\),看\(u\)与\(t\)是否联通(打标记)

382

扫码关注云+社区