android view的一些常用触发方法

onFinishInflate() 当View中所有的子控件 均被映射成xml后触发
主要用于:获取子控件的引用:例如下面代码

mTitleTextView=(TextView) findViewById(R.id.tv_header_title);
mRightButton.setBackgroundDrawable(this.mRightButtonBg);
mTitleTextView.setBackgroundDrawable(context.getResources().getDrawable(R.drawable.refresh));

onMeasure(int, int) 确定所有子元素的大小

onLayout(boolean, int, int, int, int) 当View分配所有的子元素的大小和位置时触发

onSizeChanged(int, int, int, int) 当view的大小发生变化时触发

主要用于屏幕的大小改变时,需要根据屏幕宽高来决定的其他变量可以在这里进行初始化操作,这个方法在onCreate之后onDraw之前调用

onDraw(Canvas) view渲染内容的细节

onKeyDown(int, KeyEvent) 有按键按下后触发

onKeyUp(int, KeyEvent) 有按键按下后弹起时触发

onTrackballEvent(MotionEvent) 轨迹球事件

onTouchEvent(MotionEvent) 触屏事件

onFocusChanged(boolean, int, Rect) 当View获取 或失去焦点时触发

onWindowFocusChanged(boolean) 当窗口包含的view获取或失去焦点时触发

onAttachedToWindow() 当view被附着到一个窗口时触发

onAttachedToWindow是在第一次onDraw前调用的。也就是我们写的View在没有绘制出来时调用的,但只会调用一次
在onAttachedToWindow这方法中做初始化工作,比如注册一些广播
生命周期为onCreate->onStart->onResume->onAttachedToWindow

onDetachedFromWindow() 当view离开附着的窗口时触发,

我们销毁View的时候。我们写的这个View不再显示。

这时我们就在这个方法做一些收尾工作,如:取消广播注册等等
一般用于valueAnimator.cancel()取消动画

onWindowVisibilityChanged(int) 当窗口中包含的可见的view发生变化时触发

你可能感兴趣的:(android)