自定义view你需要知道的

前面我已经跟大家分享了自定义view概述,今天跟大家分享一下官方文档中关于自定义view可能重写到的方法。官方文档

概述

实现自定义view,我们通常会去重写一些系统会在所有view中调用到的标准方法。事实上,我们不用重写所有的方法,甚至只重写onDraw(android.graphics.Canvas)方法就可以了。

创建

构造方法

构造方法有两种形式,一种是在view在代码中创建的时候调用,另一种是view从布局文件中加载的时候调用。第二种方式需要去解析在布局文件中定义的属性。

onFinishInflate()

回调方法,当view和他的子view已经从布局文件中加载完成的时候调用。

布局

onMeasure(int, int)

用来计算并且确定此view和他的子view需要的尺寸。

onLayout(boolean, int, int, int, int)

当这个view需要分配他的子view的位置和占用空间的时候调用。

onSizeChanged(int, int, int, int)

当这个view的尺寸已经发生改变的时候调用。

绘制

onDraw(android.graphics.Canvas)

当view需要渲染他的内容的时候调用。

事件处理

onKeyDown(int, KeyEvent)

当按下某个按键的时候触发,比如返回键。

onKeyUp(int, KeyEvent)

当离开按键的时候触发。

onTrackballEvent(MotionEvent)

当发生轨迹球事件时触发。

onTouchEvent(MotionEvent)

发生触屏事件的时候触发。

焦点

onFocusChanged(boolean, int, android.graphics.Rect)

当view获得或者失去焦点时触发。

onWindowFocusChanged(boolean)

当包含这个view的window得到或者失去焦点时触发。

依附

onAttachedToWindow()

当这个view依附到window中时触发。

onDetachedFromWindow()

当这个view从依附的window中分离时触发。

onWindowVisibilityChanged(int)

当包含该view的window的可见性发生改变时触发的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值